如果我在模拟器或设备上运行应用程序,UILabel不会被剪裁并给出我想要的结果(同时仍然应用Interface Builder所具有的值).
变更前(子视图可见)
在界面建筑师的变化之后(子视图不在视野范围内)
模拟器更改后(子视图如预期)
任何帮助都将受到大力赞赏.自定义类的代码如下.
@IBDesignable class UIFeaturedLabel: UILabel {@IBInspectable var borderWIDth: float = 4@IBInspectable var borderOffsetX: float = 15@IBInspectable var borderOffsetY: float = 5@IBInspectable var bordercolor: UIcolor = UIcolor.whitecolor()private var headerVIEw:UIVIEw!private var footerVIEw:UIVIEw!overrIDe init() { super.init() createVIEws()}required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) createVIEws()}overrIDe init(frame: CGRect) { super.init(frame: frame) createVIEws()}func createVIEws() { clipsToBounds = false layer.masksToBounds = false headerVIEw = UIVIEw() footerVIEw = UIVIEw() headerVIEw.backgroundcolor = UIcolor.whitecolor() footerVIEw.backgroundcolor = UIcolor.whitecolor() addSubvIEw(headerVIEw) addSubvIEw(footerVIEw)}overrIDe func layoutSubvIEws() { super.layoutSubvIEws() let left = CGfloat( -borderOffsetX ) let right = CGfloat( frame.wIDth + CGfloat(borderOffsetX*2) ) let top = CGfloat( -borderOffsetY ) let bottom = CGfloat( frame.height - CGfloat(borderWIDth/2) ) + CGfloat( borderOffsetY ) headerVIEw.frame = CGRectMake(left,top,right,CGfloat(borderWIDth)) footerVIEw.frame = CGRectMake(left,bottom,CGfloat(borderWIDth))}}解决方法 仍然出现在XCode 7.3 iOS9.3中,但在XCode Version 8.0 beta(8S128d)中修复. 总结
以上是内存溢出为你收集整理的ios – Interface Builder剪切可设计视图全部内容,希望文章能够帮你解决ios – Interface Builder剪切可设计视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)