加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – Interface Builder剪切可设计视图

发布时间:2020-12-14 19:16:27 所属栏目:百科 来源:网络整理
导读:我真的需要一只手.我创建了一个UIBabel的@IBDesignable子类,它可以在XCode Interface Builder中正常工作.但是,即使我将“clipsToBounds”设置为false,Interface Builder仍会剪切它,同时更改@IBInspectable属性. 如果我在模拟器或设备上运行应用程序,UILabel
我真的需要一只手.我创建了一个UIBabel的@IBDesignable子类,它可以在XCode Interface Builder中正常工作.但是,即使我将“clipsToBounds”设置为false,Interface Builder仍会剪切它,同时更改@IBInspectable属性.

如果我在模拟器或设备上运行应用程序,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)中修复.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读