我知道如果你想调整UIView
的大小,你必须这样做:
CGRect frame = view.frame;
frame.size.height -= 100;
view.frame = frame;
而不只是:
view.frame.size.height -= 100;
我的问题是这背后的逻辑是什么? frame
的设定者是否做了额外的事情,比如打电话给setNeedsDisplay
?
答案 0 :(得分:3)
基本上背后的原因是以下一行
view.frame.size.height -= 100;
实际上做了以下两件事:
[view frame]
结构的CGRect
方法 - 复制视图中存储的内容height
字段 - 因此它不会影响视图中存储的结构的值框架的设定者是否做了额外的事情,比如可能打电话 setNeedsDisplay?
实际上是 - 视图的frame
属性是根据其原点,边界和变换计算的,因此设置框架也会影响其原点和边界(并且取决于视图的contentMode可能会强制视图重绘)