【发布时间】:2014-09-09 05:33:36
【问题描述】:
我试图在其父视图的底部居中显示一个 UILabel,并将前导和尾随设置为延伸到父视图的边界。不幸的是,标签根本没有出现在屏幕上。我已验证父视图是否按需要正确填充整个屏幕。
//set up parent view
let vibrancyEffect = UIVibrancyEffect(forBlurEffect: blurEffect)
let vibrancyEffectView = UIVisualEffectView(effect: vibrancyEffect)
vibrancyEffectView.frame = blurEffectView.bounds
vibrancyEffectView.autoresizingMask = .FlexibleWidth | .FlexibleHeight
//Label for vibrant text
let vibrantLabel = UILabel()
vibrantLabel.text = "My Label"
vibrantLabel.textColor = UIColor(white: 0.64, alpha: 1)
vibrantLabel.textAlignment = .Center
vibrantLabel.sizeToFit()
vibrantLabel.setTranslatesAutoresizingMaskIntoConstraints(false)
vibrancyEffectView.contentView.addSubview(vibrantLabel)
vibrancyEffectView.addConstraint(NSLayoutConstraint(item: vibrantLabel, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: vibrancyEffectView, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 15))
vibrancyEffectView.addConstraint(NSLayoutConstraint(item: vibrantLabel, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: vibrancyEffectView, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 0))
vibrancyEffectView.addConstraint(NSLayoutConstraint(item: vibrantLabel, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: vibrancyEffectView, attribute: NSLayoutAttribute.Trailing, multiplier: 1, constant: 0))
vibrancyEffectView.addConstraint(NSLayoutConstraint(item: vibrantLabel, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: vibrantLabel, attribute: NSLayoutAttribute.Height, multiplier: 1, constant: 30))
blurEffectView.contentView.addSubview(vibrancyEffectView)
这可能是由于在父级上设置了自动调整大小掩码,还是我的自动布局约束不正确?我还想知道处理高度的最佳方法是什么 - 我想确保文本适合它。
【问题讨论】:
-
视图(父子视图)是否剪切子视图?如果是这样,那可能是您的问题。
-
@HAS 不,它不会剪切子视图
标签: ios swift uilabel autolayout