我想在 ImageView 顶部添加一个带有文本“Original”的小覆盖 View ,该 View 仅在用户查看原始图像时才可见。
这是我的toggleImage函数,当用户按下它时, ImageView 将显示原始图像(并且将弹出带有文本“原始”的 View ),然后当用户抬起手时返回到过滤后的图像。
func toggleImage(sender: UILongPressGestureRecognizer) {
sender.minimumPressDuration = 0.3
if sender.state == .Began{
imageView.image = self.rawImage!
view.addSubview(originalText)
}else if sender.state == .Ended{
imageView.image = self.newImage
}
现在我想用文本对 View 设置约束。
func toggleImage(sender: UILongPressGestureRecognizer) {
sender.minimumPressDuration = 0.3
if sender.state == .Began{
imageView.image = self.rawImage!
view.addSubview(originalText)
originalText.translatesAutoresizingMaskIntoConstraints = false
let bottomConstraint = originalText.bottomAnchor.constraintEqualToAnchor(view.topAnchor)
let leftConstriant = originalText.leftAnchor.constraintEqualToAnchor(view.leftAnchor)
let rightConstraint = originalText.rightAnchor.constraintEqualToAnchor(view.rightAnchor)
let heightConstraint = originalText.heightAnchor.constraintEqualToConstant(44)
NSLayoutConstraint.activateConstraints([bottomConstraint,leftConstriant,rightConstraint,heightConstraint])
view.layoutIfNeeded()
}else if sender.state == .Ended{
imageView.image = self.newImage
}
subview 现在无法显示,如何解决这个问题?
这是未设置约束时模拟器的屏幕截图。 screenshot
最佳答案
底部等于顶部:
let bottomConstraint = originalText.bottomAnchor.constraintEqualToAnchor(view.topAnchor)
您的 View 很可能在屏幕外/ View 边界之外渲染。
将其更改为:
let topConstraint = originalText.topAnchor.constraintEqualToAnchor(view.topAnchor)
关于ios - 设置约束后 subview 无法显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35172500/