小编Azi*_*chi的帖子

如何在UIView swift中播放视频?

我有一个要从服务器下载并以固定视图流式播放的视频。我在情节提要中设置了具有固定约束的UIView,这是我在代码中所做的事情:

@IBOutlet weak var videoView: UIView!
var player: AVPlayer!
var avpController = AVPlayerViewController()
Run Code Online (Sandbox Code Playgroud)

在我这里,viewDidLoad我做到了:

let url = URL(string:myURL)
player = AVPlayer(url: url!)

avpController.player = player
avpController.videoGravity = AVLayerVideoGravity.resizeAspect.rawValue
self.addChildViewController(avpController)
avpController.view.frame = videoView.frame
self.containerView.addSubview(avpController.view)
videoView.layer.masksToBounds = true
Run Code Online (Sandbox Code Playgroud)

我的问题是我的视频大小不符合我设置的大小,videoView 并且在每个设备中我的视频大小都不一样。在某些设备中,视频高度大于我设置的高度,并且覆盖了我下面的项目videoView。如何以正确的方式在视图中播放视频?

ios avplayer swift

7
推荐指数
3
解决办法
7002
查看次数

发送带有改造 2 的文件,其文件名包含波斯字符

我正在发送multipart带有改造的请求,它工作正常。但是当我的文件名包含波斯字符时,我的应用程序崩溃并出现此错误:

java.lang.IllegalArgumentException:内容处置值中 35 处出现意外字符 0x62f:表单数据;名称=“照片”;文件名="??????.jpg"

这就是我发送多部分请求的方式:

    File imageFile = new File(imagePath);

    ProgressRequestBody fileBody = new ProgressRequestBody(imageFile, this);
    MultipartBody.Part filePart = MultipartBody.Part.createFormData("photo", imageFile.getName(), fileBody);

    RetroInterface retroInterface = RetrofitClientInstance.getRetrofitInstance().create(RetroInterface.class);
    Call<SendFileResponse> call = retroInterface.sendPhoto(token, myHashmap, filePart);
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?!

android multipart retrofit retrofit2

5
推荐指数
1
解决办法
1297
查看次数

如何删除圆形 UIImageView 中的空白?

我想圈出我的 UIImageView 并添加以下代码:

profileImage.layer.cornerRadius = profileImage.frame.size.height/2
    profileImage.clipsToBounds = true
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但是当图像水平时,我得到这张照片: 在此输入图像描述

如您所见,我的圆形图像视图的底部和顶部有空白区域。但我真正想要的是一个充满我形象的圆圈!我尝试从属性检查器更改“内容模式”,但没有得到任何答案!我该如何解决这个问题?

uiimageview ios swift

2
推荐指数
1
解决办法
1935
查看次数

如何在带有滑块的滑块上添加UILabel?

我有一个包含5个部分的滑块,我想逐步了解这些部分!而我做到了:

@IBAction func changeCostSlider(_ sender: UISlider) {
    sender.value = roundf(costSlider.value)
}
Run Code Online (Sandbox Code Playgroud)

我也想在滑块的拇指上添加标签,我试图将此代码添加到上面的代码中:

let trackRect: CGRect  = costSlider.trackRect(forBounds: costSlider.bounds)
    let thumbRect: CGRect  = costSlider.thumbRect(forBounds: costSlider.bounds , trackRect: trackRect, value: costSlider.value)
    let x = thumbRect.origin.x + costSlider.frame.origin.x
    let y = costSlider.frame.origin.y - 20
    sliderLabel.center = CGPoint(x: x, y: y)
Run Code Online (Sandbox Code Playgroud)

但是,当我移动滑块时,我的标签会从将其放置在情节提要中的位置跳出来,并且会有些滞后!有人对如何将此标签添加到我的步进滑块并正常工作有任何建议吗?

我认为我的问题是我将UILable固定在storyborad中,当我将拇指移到滑块中时,稍微移动了一秒钟,它又回到了固定位置!我该怎么解决?

我尝试以编程方式添加我的UILabel,直到我触摸拇指后,它才起作用!它是如何完成的:

var sliderLableP = UILabel()
@IBAction func changeCostSlider(_ sender: UISlider) {
    sender.value = roundf(costSlider.value)
    print(costSlider.value)
    let trackRect: CGRect  = costSlider.trackRect(forBounds: costSlider.bounds)
    let thumbRect: CGRect  = costSlider.thumbRect(forBounds: costSlider.bounds , trackRect: trackRect, value: …
Run Code Online (Sandbox Code Playgroud)

uilabel uislider ios swift

1
推荐指数
1
解决办法
975
查看次数

如何发送带有改进的List &lt;String&gt;?

我正在向服务器发送多部分请求,这是我的界面:

@Multipart
@POST("v1/group/new")
Call<MyResponse> newGroup(
        @Header("token") String token,
        @Part MultipartBody.Part photo,
        @Part("title") RequestBody subject,
        @Part("members") List<RequestBody> members);
Run Code Online (Sandbox Code Playgroud)

并送我的会员我的片段,我改变我List<String>List<RequestBody>如下:

List<RequestBody> members = new ArrayList<>();
for(int i = 0;i < membersId.size(); i++){
    members.add(RequestBody.create(MediaType.parse("text/plain"),membersId.get(i)));
}
Run Code Online (Sandbox Code Playgroud)

它正在与多个成员合作!但是当我的列表中只有一个字符串时,翻新不会将我的成员作为列表发送!!!例如:

我想发送这样的字符串数组:

[“ item1”,“ item2”,“ item3”]

我的代码对此有效,但是当只有一项时,改造会发送以下内容:

“ item1”

代替[“ item1”]

经过改造的多部分发送字符串数组的正确方法是什么?

我究竟做错了什么?

android retrofit2

1
推荐指数
1
解决办法
1000
查看次数