我有一个自定义的 Native UI 组件,我正在使用 (void)reactSetFrameCGRect)frame (UIView+React.h 中的方法),当方向改变,这个方法被调用,但是对于旧框架,框架没有改变。
我的用法:
- (void)reactSetFrameCGRect)frame {
[super reactSetFrame:frame];
...
}
Best Answer-推荐答案 strong>
我相信你可以利用这个
override func drawRect(rect : CGRect) {
print(rect)
}
override func traitCollectionDidChange(previousTraitCollection: UITraitCollection?) {
print("hi")
self.setNeedsDisplay()
}
调用 self.setNeedsDisplay 时会调用 Draw rect,您可以覆盖 traitCollectionDidChange 捕获它并强制 View 自行布局
编辑
刚刚意识到你正在使用 Objective-c
- (void)drawRectCGRect)rect {
NSLog(@"%@",NSStringFromCGSize(rect.size));
}
-(void)traitCollectionDidChangeUITraitCollection *)previousTraitCollection {
[self setNeedsDisplay];
}
关于ios - 改变方向时,框架 reactSetFrame CGRect)frame not changed,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/37316882/
|