我有一些代码viewDidLayoutSubviews,目的是让图像在开始时变得透明(alpha = 0),然后慢慢淡入(进入alpha = 1)代码viewDidAppear.此外,我有一个按钮,按下时可以更改自己的标签文本.
但是,当按下按钮并且标签发生变化时,图像(我在下面指定viewDidLayoutSubviews)也会消失.我认为是因为下面的代码viewDidLayoutSubviews被调用了?
我的问题是:
1)是什么意思viewDidLayoutSubviews?按钮标签更改时为什么会调用它?简单/一般,什么是setNeedsLayout&setNeedsDisplayInRect?
2)那么使用viewWillAppear会更好吗?
这里有两个类似的问题,但我无法理解它们:
顾名思义,viewDidLayoutSubviews当您的视图viewController刚刚完成布局时调用,您可以假设在那时您的视图frame根据您的autolayout约束位于正确的位置.你不应该执行任何动作假设你view■找他们的最终frames的称为该方法之前:例如,如果你试图aView setFrame:在viewDidLoad它可能会失败/有没有影响,因为autolayout改变其frame布局阶段期间.因此,如果您确实需要更改其框架,则应该setFrame:在/之后调用viewDidLayoutSubviews
总之,如果你关心的是关于阿尔法值image或者imageView,viewDidLayoutSubviews可能是不正确的地方.viewDidAppear似乎更适合这个.viewDidAppear非常简单:当视图出现在屏幕上时,它会被调用.
| 归档时间: |
|
| 查看次数: |
11119 次 |
| 最近记录: |