【问题标题】:custom method in custom view for subview layout, or use of layoutSubviews/layoutIfNeeded子视图布局的自定义视图中的自定义方法,或使用 layoutSubviews/layoutIfNeeded
【发布时间】:2011-08-04 03:57:12
【问题描述】:

我有一个在 UIViewController 中使用的自定义 UIView。自定义视图需要一些自定义/程序布局。我目前正在做的是,从控制器“viewDidAppear”方法中,我调用了一个我已经放置的自定义视图方法,称为“layoutThisView”。这似乎工作正常。

问题 - 我应该/可以使用 UIView layoutSubviews/layoutIfNeeded 方法来代替这种方法吗?这会帮助/成为更好的方法吗?

【问题讨论】:

    标签: iphone ios uiview uiviewcontroller layoutsubviews


    【解决方案1】:

    使用layoutSubviews 可能会更好。每当视图出于任何原因需要布局时,Cocoa Touch 都会自动发送此消息——调整大小、方向更改等。一般来说,尽可能使用框架。

    一个警告:我相信滚动 UIScrollView 可能会导致在其包含的视图上调用 layoutSubviews,因此您可能需要执行一些操作,例如在执行某些类型的布局之前确保视图边界确实发生了变化那个案子。不过,我很乐意让评论者澄清这一点——这只是我遇到的问题,而不是我彻底测试过的问题。

    【讨论】:

    • 那我在自定义UIView中实现一个layoutSubview方法,然后父UIControllerView会自动知道什么时候调用这个方法?
    • 是的,完全正确,尽管我相信这是由窗口和视图层次结构引起的。
    猜你喜欢
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 2012-07-01
    相关资源
    最近更新 更多