更改方向时,框架reactSetFrame:(CGRect)框架未更改

时间:2016-05-19 07:41:30

标签: ios react-native

我有一个自定义的原生UI组件,我正在使用registerExtenders(void)reactSetFrame:(CGRect)frame中的方法),当方向更改时,此方法被调用但是使用旧框架,框架没有变化

我的用法:

UIView+React.h

1 个答案:

答案 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];
}