我有一個非常簡單的UIView
,那只是畫一個三角形。它實現了一個繪製數字的方法UIView drawRect
。它在iOS7上工作正常,但是當我在iOS8上運行相同的代碼時,它甚至沒有被調用。任何想法在iOS8上發生了什麼變化?我在一言以蔽之代碼:iOS8問題 - UIView drawRect不叫
@interface MyView : UIView
@end
@implementation MyView
- (instancetype)init {
self = [super init];
if (self) {
self.backgroundColor = [UIColor clearColor];
}
return self;
}
- (void)drawRect:(CGRect)rect {
// draw things
}
@end
myView = [MyView new];
[self addSubview:myView];
更新
我的看法層次:UIViewController View->Custom UILabel->MyView
這是一個錯誤信息泡沫,而我的觀點是指向一個東西喙。
我已經使用了一個新的UI調試工具,但它在那裏不可見。 Init方法被調用,drawRect
不是。 iOS8中一定有變化,因爲iOS7叫drawRect
。
更新2
當然,我使用的限制(和Masonry
POD),這就是爲什麼我沒有指定的幀。
[myView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(make.superview.mas_bottom);
make.centerX.equalTo(make.superview);
make.width.equalTo(@10.0f);
make.height.equalTo(@5.0f);
}];
我也試過在各個地方加入[myView setNeedsDisplay]
,但沒有幫助。
有關視圖層次結構中引入視圖的更多信息?您是否使用新的調試工具檢查了視圖層次結構,以查明您的視圖在哪裏? – Vinzzz 2014-09-25 12:20:35
@Vinzzz更新了問題。如果您需要更多信息,請告訴我。 – KlimczakM 2014-09-25 12:31:49
好的...所以你使用這個MASConstraintMaker ...也許iOS 8的bug來自那個類? – Vinzzz 2014-09-25 14:21:07