我正在尝试使用我设置背景颜色和不透明度的视图在图像顶部创建一个遮罩,它似乎在iPhone 7中完美运行。当我在iPhone中运行应用程序时出现问题7加模拟器,由于某种原因掩模保持iPhone 7尺寸的大小。
我创建了一个自定义的UIImageView类:
class LoginBackgroundImageView: UIImageView {
override func awakeFromNib() {
super.awakeFromNib()
// Set a mask on image background
let bgColorView = UIView()
bgColorView.backgroundColor = UIColor(white: 0, alpha: 0.4)
bgColorView.frame = CGRect(x: 0, y: 0, width: frame.width, height: frame.height)
addSubview(bgColorView)
}
}
答案 0 :(得分:2)
代替框架尝试在将其添加为subView后向bgColorView添加约束。
class LoginBackgroundImageView: UIImageView {
override func awakeFromNib() {
super.awakeFromNib()
self.clipsToBounds = true // set clipsToBounds true
let bgColorView = UIView()
bgColorView.backgroundColor = UIColor(white: 0, alpha: 0.4)
addSubview(bgColorView)
bgColorView.translatesAutoresizingMaskIntoConstraints = false
bgColorView.leadingAnchor.constraint(equalTo: self.leadingAnchor).isActive = true
bgColorView.trailingAnchor.constraint(equalTo: self.trailingAnchor).isActive = true
bgColorView.topAnchor.constraint(equalTo: self.topAnchor).isActive = true
bgColorView.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true
}
}
希望得到这个帮助。
答案 1 :(得分:0)
你有没有尝试过:
bgColorView.frame = frame
或者:
bgColorView.frame = UIScreen.main.bounds
答案 2 :(得分:0)
您的LoginBackgroundImageView
可能Content Mode
与AspectFit
或ScaleAspectFit
不同吗?在这种情况下,当bgColorView
具有适当的帧时,图像实际上可能会离开其帧。