界面生成器剪切可设计的视图

乔伊·三叶草

我真的需要帮忙 我创建了UILabel的@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, right, CGFloat(borderWidth))
}
}
水果编码器

XCode 7.3 iOS9.3仍会发生,但已在XCode版本8.0 beta(8S128d)中修复。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SpriteKit的界面生成器

来自分类Dev

设置界面生成器标签

来自分类Dev

使用界面生成器来布局带有图像和文本的滚动视图

来自分类Dev

以编程方式创建视图而不是使用界面生成器

来自分类Dev

在界面生成器中显示自定义视图

来自分类Dev

使用界面生成器来布局带有图像和文本的滚动视图

来自分类Dev

以编程方式创建视图而不是使用界面生成器

来自分类Dev

iOS:在界面生成器中创建多个动态视图

来自分类Dev

在界面生成器中为渐变视图设置渐变背景颜色

来自分类Dev

界面生成器什么是对象模板

来自分类Dev

从界面生成器降低NSProgressIndicator的高度

来自分类Dev

在界面生成器上解散序列

来自分类Dev

界面生成器:MapView的自动布局

来自分类Dev

UIImageView:从界面生成器添加点击事件

来自分类Dev

可可nstableview喜欢界面生成器

来自分类Dev

OSX上的IBOutletCollections和界面生成器

来自分类Dev

消除界面生成器上的问题

来自分类Dev

界面生成器:为什么我的UIView透明?

来自分类Dev

Xcode在界面生成器中意外退出

来自分类Dev

使用自动布局减少编程的界面生成器

来自分类Dev

界面生成器:MapView的自动版式

来自分类Dev

对于同一视图,在界面生成器中,约束“宽度等于高度”:如何创建这样的约束?

来自分类Dev

在xcode 6.1中,界面生成器删除ui元素

来自分类Dev

不使用界面生成器时是否需要IBAction

来自分类Dev

在界面生成器中创建的按钮...这是什么虚线,如何解决?

来自分类Dev

iOS6与iOS7外观界面生成器

来自分类Dev

我无法在界面生成器中取消选中“拒绝第一响应者”

来自分类Dev

使用自动布局和界面生成器在垂直方向上扩展/隔开的屏幕元素

来自分类Dev

在界面生成器中添加的自定义UIView不会加载xib

Related 相关文章

  1. 1

    SpriteKit的界面生成器

  2. 2

    设置界面生成器标签

  3. 3

    使用界面生成器来布局带有图像和文本的滚动视图

  4. 4

    以编程方式创建视图而不是使用界面生成器

  5. 5

    在界面生成器中显示自定义视图

  6. 6

    使用界面生成器来布局带有图像和文本的滚动视图

  7. 7

    以编程方式创建视图而不是使用界面生成器

  8. 8

    iOS:在界面生成器中创建多个动态视图

  9. 9

    在界面生成器中为渐变视图设置渐变背景颜色

  10. 10

    界面生成器什么是对象模板

  11. 11

    从界面生成器降低NSProgressIndicator的高度

  12. 12

    在界面生成器上解散序列

  13. 13

    界面生成器:MapView的自动布局

  14. 14

    UIImageView:从界面生成器添加点击事件

  15. 15

    可可nstableview喜欢界面生成器

  16. 16

    OSX上的IBOutletCollections和界面生成器

  17. 17

    消除界面生成器上的问题

  18. 18

    界面生成器:为什么我的UIView透明?

  19. 19

    Xcode在界面生成器中意外退出

  20. 20

    使用自动布局减少编程的界面生成器

  21. 21

    界面生成器:MapView的自动版式

  22. 22

    对于同一视图,在界面生成器中,约束“宽度等于高度”:如何创建这样的约束?

  23. 23

    在xcode 6.1中,界面生成器删除ui元素

  24. 24

    不使用界面生成器时是否需要IBAction

  25. 25

    在界面生成器中创建的按钮...这是什么虚线,如何解决?

  26. 26

    iOS6与iOS7外观界面生成器

  27. 27

    我无法在界面生成器中取消选中“拒绝第一响应者”

  28. 28

    使用自动布局和界面生成器在垂直方向上扩展/隔开的屏幕元素

  29. 29

    在界面生成器中添加的自定义UIView不会加载xib

热门标签

归档