【发布时间】:2014-10-08 17:49:23
【问题描述】:
我正在使用自动布局。以下是视图的初始状态。
中间是一个包含在视图中的按钮。按钮有contentMode Aspect Fill,图片设置为按钮的背景图。
然后我用下面的代码对视图进行变换,将中心卡片放大以填满屏幕,并将图像移动到视图的顶部:
cardTrailingSpaceConstraint.constant = 0
cardLeadingSpaceConstraint.constant = 0
cardView.removeConstraint(cardAspectRatioConstraint)
let cardHeightConstraint = NSLayoutConstraint(item: cardView, attribute: .Height, relatedBy: .Equal, toItem: view, attribute: .Height, multiplier: 1.0, constant: 0)
view.addConstraint(cardHeightConstraint)
dishImageButton.removeConstraint(dishButtonBottomSpaceConstraint)
let dishButtonHeightConstraint = NSLayoutConstraint(item: dishImageButton, attribute: .Height, relatedBy: .Equal, toItem: cardView, attribute: .Height, multiplier: 0.2, constant: 0)
cardView.addConstraint(dishButtonHeightConstraint)
cardView.setNeedsUpdateConstraints()
UIView.animateWithDuration(0.7, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.7, options: nil, animations: { [unowned self] () -> Void in
self.cardHeader.alpha = 0
self.cardView.layer.cornerRadius = 0
self.cardView.layoutIfNeeded()
}) { [unowned self] (finished) -> Void in
}
结果是:
然而,这不是我想要的。该按钮不尊重 contentMode,然后图像被拉伸。
谁能告诉我如何维护按钮的Aspect Fill contentMode?
【问题讨论】: