我正在为iPad编写需要自定义布局的iOS应用程序.
纵向和横向的布局完全不同,因此使用UIAutoResizingMask无法解决.
我尝试使用layoutSubview方法,但我检测到布局子视图被调用很多(来自UIScrollView).如何减少layoutSubview调用以优化代码,或者我应该在旋转设备时自己调用它.
谢谢.
layoutSubviews被孩子 打电话的事实UIScrollView非常不幸,但有一个(丑陋的)解决方法:
@interface MyClass : UIView {
BOOL reallyNeedsLayout_;
}
@end
@implementation MyClass
- (void)setNeedsLayout
{
[super setNeedLayout];
reallyNeedsLayout_ = YES;
}
- (void)setFrame:(CGRect)rect
{
[super setFrame:rect];
reallyNeedsLayout_ = YES;
}
- (void)layoutSubviews
{
if (!reallyNeedsLayout_) return;
reallyNeedsLayout_ = NO;
// Do layouting.
}
@end
Run Code Online (Sandbox Code Playgroud)
这不是最好的解决方案,但似乎效果相当好。
| 归档时间: |
|
| 查看次数: |
6313 次 |
| 最近记录: |