ios – 目标C:自动布局,现有自定义视图将边界宽度和高度更改为0,0

ios – 目标C:自动布局,现有自定义视图将边界宽度和高度更改为0,0,第1张

概述好.我刚学习CALayers,因为我继承了别人的代码.有一个视图占据整个背景(减去工具栏),然后是一个子视图,占据了视图底部附近的一个小矩形.我正在尝试使用自动布局.这是我遇到麻烦的背景视图.我已经尝试固定宽度和高度以及我知道的其他一些东西,以使高度和宽度保持视图的大小(320 x 505).我不确定这些图层是否弄乱了我,或者它是否是另一种观点.无论如何这里是有问题的代码.关闭自动布局后,宽度和高 好.我刚学习CALayers,因为我继承了别人的代码.有一个视图占据整个背景(减去工具栏),然后是一个子视图,占据了视图底部附近的一个小矩形.我正在尝试使用自动布局.这是我遇到麻烦的背景视图.我已经尝试固定宽度和高度以及我知道的其他一些东西,以使高度和宽度保持视图的大小(320 x 505).我不确定这些图层是否弄乱了我,或者它是否是另一种观点.无论如何这里是有问题的代码.关闭自动布局后,宽度和高度都是正确的.打开“自动布局”后,宽度和高度将变为负数并设置为零.有想法该怎么解决这个吗?

UIVIEw *vIEw = [self vIDeoPrevIEwVIEw];            CGRect bounds = [[self vIDeoPrevIEwVIEw] bounds];  //bounds gets set here                                                       //values are same as below    [self setCaptureManager:captureManager];    AVCaptureVIDeoPrevIEwLayer *captureVIDeoPrevIEwLayer = [[AVCaptureVIDeoPrevIEwLayer alloc] initWithSession:[captureManager session]];    CALayer *vIEwLayer = [vIEw layer];    [vIEwLayer setMasksToBounds:YES];   [captureVIDeoPrevIEwLayer setFrame:bounds];  //Use autolayout off:  x=0,y=0,wIDth=320,height=504                                                //Use autolayout on:   x=0,wIDth=0,height=0

谢谢.

解决方法 启用autolayout后,尚未在vIEwDIDLoad中计运算符视图约束,从而导致帧等于CGRectZero.您应该将帧设置代码移动到vIEwDIDLayoutSubvIEws方法中.

从类引用解释vIEwDIDLayoutSubvIEws:

NotifIEs the vIEw controller that its vIEw just laID out its subvIEws.

正是在autolayout完成其工作以计算约束并将子视图放在适当位置之后.

总结

以上是内存溢出为你收集整理的ios – 目标C:自动布局,现有自定义视图将边界宽度和高度更改为0,0全部内容,希望文章能够帮你解决ios – 目标C:自动布局,现有自定义视图将边界宽度和高度更改为0,0所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1000277.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存