有可能在UIStackView之外呈现子视图吗?我有一个带有按钮和标签的垂直堆栈视图,我使用堆栈视图的宽度来适当地设置按钮的高度和宽度:
addArrangedSubview(self.loginMethodButton)
let widthConstraint = NSLayoutConstraint(item: self.loginMethodButton, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 1.0, constant: 0.0)
let heightConstraint = NSLayoutConstraint(item: self.loginMethodButton, attribute: .height, relatedBy: .equal, toItem: self.loginMethodButton, attribute: .width, multiplier: 1.0, constant: 0.0)
NSLayoutConstraint.activate([widthConstraint, heightConstraint])然后根据情况调整viewController中的宽度以适当大小。问题是,在一个较小的大小按钮需要,宽度比它下面的标签,即切断标签。

如果我在设置标签时调用sizeToFit(),它可以工作,但是,在设置标签后调整大小时调用sizeToFit()仍然会导致标签被切断。在标签视图和堆栈视图中将clipsToBounds设置为false都没有任何效果。
是否可以在堆栈视图之外呈现视图?或者,为了解决这个问题,我必须找到一种重新调整约束的方法吗?
发布于 2017-11-16 16:34:56
UIStackView是一个“非渲染”对象.它所做的就是安排其他的观点。
如果问题是您的UILabel太宽,无法适应堆栈视图提供的区域,那么您要么需要将标签设置为“自动缩小”字体,要么需要修改Stack View约束以允许更宽的标签。
编辑基于您的其他评论,以下是不正确的。
您需要在“包含”视图上设置.clipsToBounds ..。根据您正在显示的图形,这将是更深蓝色的框(我假设这是一个UIView,图像和标签作为子视图)。
https://stackoverflow.com/questions/47334551
复制相似问题