ios – 没有drawRect的Live Xcode的Interface Builder UIView子
是否可以创建一个UIView子类,它在
Xcode中呈现(通过添加IB_DESIGNABLE属性,如
here所述),但没有自定义drawRect:方法?
我们有一个自定义的UIView子类,它使用一些CAShapeLayers,它们被添加到self.layer中进行绘制(因此,不需要覆盖drawRect :).这个类在App上工作正常,但不会在Xcode上呈现. 如果我们在drawRect中复制代码:它可以工作,但我们更喜欢让图形在图层上自动发生. 可以这样做吗? 我也尝试过 - (void)drawRect:(CGRect)rect { CGContextRef currentContext = UIGraphicsGetCurrentContext(); CGContextMoveToPoint(currentContext,self.myLayer1.frame.origin.x,self.myLayer1.frame.origin.y); [self.myLayer1 renderInContext:currentContext]; CGContextMoveToPoint(currentContext,self.myLayer1.frame.origin.y); [self.myLayer2 renderInContext:currentContext]; } 这似乎适用于设备,但不适用于Xcode的IB. 解决方法
即使没有覆盖drawRect:,也可以在IB中使用IB_DESIGNABLE宏预览UIView子类.
我在XCode 6.1中添加了你的 code,并在一个xib文件中添加了一个OEProgressIndicator.然后我通过在commonProgressIndicatorInit选择器中设置断点来调试它(使用菜单Editor / Debug Selected View). 这就是为什么在预览中看不到当前代码的原因:当调用commonProgressIndicatorInit时(来自initWithFrame:(CGRect)框架构造函数),框架等于CGRectZero(x:0 y:0 width:0 height) :0)这样你的中心变量实际上等于(0,0),半径是-1. 为了解决这个问题,我将实现 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |