我有一个自定义的原生UI组件,我正在使用registerExtenders
((void)reactSetFrame:(CGRect)frame
中的方法),当方向更改时,此方法被调用但是使用旧框架,框架没有变化
我的用法:
UIView+React.h
答案 0 :(得分:1)
我相信你可以利用这个:)
override func drawRect(rect : CGRect) {
print(rect)
}
override func traitCollectionDidChange(previousTraitCollection: UITraitCollection?) {
print("hi")
self.setNeedsDisplay()
}
调用self.setNeedsDisplay时会调用draw rect,你可以覆盖traitCollectionDidChange
捕获它并强制视图自行布局:)
修改强>
刚刚意识到你正在使用Objective-c
- (void)drawRect:(CGRect)rect {
NSLog(@"%@",NSStringFromCGSize(rect.size));
}
-(void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
[self setNeedsDisplay];
}