OGeek|极客世界-中国程序员成长平台

标题: ios - 改变方向时,框架 reactSetFrame :(CGRect)frame not changed [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 16:37
标题: ios - 改变方向时,框架 reactSetFrame :(CGRect)frame not changed

我有一个自定义的 Native UI 组件,我正在使用 (void)reactSetFrameCGRect)frame(UIView+React.h 中的方法),当方向改变,这个方法被调用,但是对于旧框架,框架没有改变。

我的用法:

- (void)reactSetFrameCGRect)frame {
    [super reactSetFrame:frame];
    ...
}



Best Answer-推荐答案


我相信你可以利用这个

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/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) Powered by Discuz! X3.4