一度だけ描画され、決して更新されない UIView 派生ビューがあります。
呼び出し[self setNeedsDisplay]
ても効果はありません。何が原因でしょうか?
描画コードの有無は問わない
drawRect:
、 またdrawLayer:inContext:
(空の drawRect() が定義されている)
drawLayer:inContext が定義されていない場合は、drawRect が呼び出されます。ただし、1 回だけ (レイアウト中)。
- (void)drawLayer:(CALayer*)layer inContext:(CGContextRef)ctx {
// drawing occurs, but just once (during view layout)
}
`- (void)drawRect:(CGRect) rect {
// empty -- never called
}
私が試したことの小さなリスト:
- [自己設定NeedsDisplay]
- [self.layer setNeedsDisplay]
- [self.mySubLayer setNeedsDisplay]
- self.contentMode = UIViewContentModeRedraw;
- ビューを .nib からロードする代わりに手動で作成する (効果なし)
- レイヤー (およびサブレイヤー) の使用を削除し、drawRect のみを使用 (効果なし)