我有一个要从服务器下载并以固定视图流式播放的视频。我在情节提要中设置了具有固定约束的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。如何以正确的方式在视图中播放视频?
我正在发送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)
我该如何解决这个问题?!
我想圈出我的 UIImageView 并添加以下代码:
profileImage.layer.cornerRadius = profileImage.frame.size.height/2
profileImage.clipsToBounds = true
Run Code Online (Sandbox Code Playgroud)
如您所见,我的圆形图像视图的底部和顶部有空白区域。但我真正想要的是一个充满我形象的圆圈!我尝试从属性检查器更改“内容模式”,但没有得到任何答案!我该如何解决这个问题?
我有一个包含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) 我正在向服务器发送多部分请求,这是我的界面:
@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”]
经过改造的多部分发送字符串数组的正确方法是什么?
我究竟做错了什么?