ios – 自动布局后使视图回合

ios – 自动布局后使视图回合,第1张

概述我有一个自定义单元格的tableview,它是使用AutoLayout从带有标识符的storyboard构建的. 其中一个子视图需要是圆形的(layer.cornerRadius = width / 2),它在开头是一个正方形. 我在layoutSubviews()中尝试过,但似乎在AutoLayout改变其大小之前调用…同样的事情为didMoveToSuperview() 在AutoLayout 我有一个自定义单元格的tablevIEw,它是使用autoLayout从带有标识符的storyboard构建的.

其中一个子视图需要是圆形的(layer.cornerRadius = wIDth / 2),它在开头是一个正方形.

我在layoutSubvIEws()中尝试过,但似乎在autoLayout改变其大小之前调用…同样的事情为dIDMovetoSupervIEw()

在autoLayout更改其大小后,将此类内容更新到我的子视图的正确功能在哪里?

func tableVIEw(tableVIEw: UItableVIEw,cellForRowAtIndexPath indexPath: NSIndexPath) -> UItableVIEwCell {    let cell = tableVIEw.dequeueReusableCellWithIDentifIEr("cell_small") as! Cell    ...    return cell}// In CelloverrIDe func layoutSubvIEws() {    rankLabel.layer.cornerRadius = rankLabel.bounds.wIDth/2    rankLabel.layer.masksToBounds = true}overrIDe func dIDMovetoSupervIEw() {    rankLabel.layer.cornerRadius = rankLabel.bounds.wIDth/2    rankLabel.layer.masksToBounds = true}

结果:

解决方法 我最终做的是创建一个名为RoundVIEw的类
class RoundVIEw:UIVIEw {    overrIDe func layoutSubvIEws() {        super.layoutSubvIEws()        self.layer.cornerRadius = self.bounds.wIDth/2        self.layer.masksToBounds = true    }}

然后我将它应用于我需要绕过的每个视图.所以在Storyboard中我将RoundVIEw添加到Custom Class.

发生的事情是,如果您查看故事板(XML)的源代码,每个视图都具有整个屏幕的大小,您可以查看自己的SB代码.因此,通过尝试在其父layoutSubvIEws()内添加等于wIDth / 2的角半径,子视图未正确设置其框架.所以角半径的值为320/2而不是50/2,这就是它变形的原因.

总结

以上是内存溢出为你收集整理的ios – 自动布局后使视图回合全部内容,希望文章能够帮你解决ios – 自动布局后使视图回合所遇到的程序开发问题。

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

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

原文地址:https://54852.com/web/1101785.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存