2016-05-19 11 views
2

カスタムネイティブUIコンポーネントがあり、オリエンテーションが変更されたときに(方法はUIView+React.h)を使用していますが、このメソッドは古いフレーム、フレームは変更されませんでした。オリエンテーションを変更すると、フレームreactSetFrame :(CGRect)フレームが変更されない

私の使用:

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

答えて

1

私はあなたがこれを利用することができると信じて:)

override func drawRect(rect : CGRect) { 
     print(rect) 
    } 

override func traitCollectionDidChange(previousTraitCollection: UITraitCollection?) { 
     print("hi") 
     self.setNeedsDisplay() 
} 

self.setNeedsDisplayが呼び出されると、あなたはtraitCollectionDidChangeがそれと力をキャプチャ上書きすることができたときに描画四角形が呼び出されますレイアウト自体のビュー:

EDIT

ちょうどあなたがObjective-Cの

- (void)drawRect:(CGRect)rect { 
    NSLog(@"%@",NSStringFromCGSize(rect.size)); 
} 

-(void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection { 
    [self setNeedsDisplay]; 
} 
+0

を使用しているおかげで実現しますが、フレームはまだ変わっていない:gran33 @/ – gran33

+0

:あなたは必ず、あなたの視野枠が変化している????あなたのフレームが変更された場合、drawRectで変更されたフレーム値を取得するか、手動で変更することができます:) autolayoutConstraintでviewをviewCotrollerの4つの側面に固定すると、drawRectは更新されたフレーム:)私は何かが不足しています –

+0

おそらく 'フレックス'はこれをサポートしていませんか? – gran33

関連する問題