我有一个非常简单的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