我正在用图像编写应用程序,它应该是头像。所以我希望这个头像完全是圆形的。我正在使用AutoLayout,我知道如何使用约束而不使用延迟使外观图像完美的圆圈!但现在我正在使用Tab Bar View(使用TabBarView控制器),当我尝试用头像打开标签时,我面临着问题:图片不是完整的圆圈。它不是菱形,但它仍然不是一个圆圈。但是,如果我尝试其他酒吧,然后回到酒吧与化身,它将是完美的圆圈。看看下面的gif动画,你会看到一切:
有代码可以执行此操作:
@IBOutlet weak var userAvatarImageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func viewWillAppear(animated: Bool) {
userAvatarImageView.layer.borderWidth = 4.0
userAvatarImageView.layer.masksToBounds = true
userAvatarImageView.clipsToBounds = true
userAvatarImageView.layer.cornerRadius = userAvatarImageView.bounds.size.width / 2.0
let color = UIColor(red: CGFloat(255.0), green: CGFloat(255.0), blue: CGFloat(255.0), alpha: CGFloat(1.0))
userAvatarImageView.layer.borderColor = color.CGColor
}
override func viewDidLayoutSubviews() {
userAvatarImageView.layer.cornerRadius = userAvatarImageView.bounds.size.width / 2.0
}
override func viewWillLayoutSubviews() {
userAvatarImageView.layer.cornerRadius = userAvatarImageView.bounds.size.width / 2.0
}
但这些方法都不能正常工作。请问,也许有人知道如何解决这个问题?
答案 0 :(得分:0)
我遇到了同样的问题,我发现userAvatarImageView.bounds.size.width / 2.0这一个不起作用。所以我在那里给出了确切的值,然后图像显示出完美的圆圈。
userAvatarImageView.layer.cornerRadius = userAvatarImageView.bounds.size.width / 2.0 // Dont use like this
userAvatarImageView.layer.cornerRadius = 10.0 ( value which equal to userAvatarImageView.bounds.size.width / 2.0, calculate that value and put it here )