我有一个带有特大标签(我需要将其截断)和UIStackView中的UISwitch的布局问题。 UI呈现显然不正确,请参见屏幕快照https://www.dropbox.com/s/ankoovfh874kgy7/AlignmentTruncation.jpg
很显然,这已经太晚了,我凝视了太久了。如果有人可以帮助我解决这个男生错误,我将不胜感激。
Dev环境Xcode 10.2(10E125),macOS Mojave 10.14.5 Beta。
谢谢
迈克
class SwitchableOptionCell : UICollectionViewCell {
let switchView : UISwitch = {
let sv = UISwitch()
return sv
}()
let labelView : UILabel = {
let lv = UILabel()
lv.backgroundColor = .red
lv.text = "The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog"
lv.lineBreakMode = .byTruncatingTail
return lv
}()
override init(frame : CGRect)
{
super.init(frame : frame)
let sv = UIStackView(arrangedSubviews: [labelView, switchView])
sv.spacing = 12
sv.alignment = .center
addSubview(sv)
sv.translatesAutoresizingMaskIntoConstraints = false
sv.topAnchor.constraint(equalTo: self.topAnchor).isActive = true
sv.leadingAnchor.constraint(equalTo : self.leadingAnchor, constant: 16).isActive = true
sv.bottomAnchor.constraint(equalTo : self.bottomAnchor).isActive = true
sv.trailingAnchor.constraint(equalTo : self.trailingAnchor, constant: -16).isActive = true
}
required init?(coder aDecoder : NSCoder)
{
fatalError("init(coder:) has not been implemented")
}
}
答案 0 :(得分:0)
只要尝试改变 sv.alignment = .center 至 sv.alignment = .fill 要么 sv.alignment = .fillProportionaly
问题可能与uiswitch有关。他不知道他的实际宽度。因此,您可以尝试为具有宽度限制的uiswitch创建一些容器