gpt4 book ai didi

ios - Swift/cornerRadius 和 masksToBounds 让 UIImageView 消失

转载 作者:搜寻专家 更新时间:2023-10-31 08:15:15 30 4
gpt4 key购买 nike

我有一个 UITableViewController 和一个 UIImageView。使用以下简单代码加载内容。

@IBOutlet weak var avatarImageView: UIImageView!

override func viewDidLoad() {
super.viewDidLoad()

updateUI()
}

func updateUI() {

backendless.userService.currentUser.retrieveProperties()

avatarImageView.layer.cornerRadius = avatarImageView.frame.size.width/2
avatarImageView.layer.masksToBounds = true

let imgURL = NSURL(string: (backendless.userService.currentUser.getProperty("Avatar") as? String)!)
avatarImageView.sd_setImageWithURL(imgURL)

tableView.reloadData()

}

ImageView 没有出现。

但如果我删除以下代码,UIImageView 将被正确设置和显示。

avatarImageView.layer.cornerRadius = avatarImageView.frame.size.width/2
avatarImageView.layer.masksToBounds = true

我错过了什么?非常感谢帮助。:

附言:

Xcode 8.0

swift 2.3

ImageView 的约束设置为 120*120

sd_setImageWithURL = pod 'SDWebImage'

enter image description here

最佳答案

试试这个:

override func viewDidLoad() {
super.viewDidLoad()

self.view.layoutIfNeeded() // <- This will update your initial view frames
updateUI()
}

发生的事情是,在 Xcode 8.0 中,当您点击 viewDidLoad 时, Controller 的所有 subview 的框架仍然是 x: 0.0, y: 0.0, w: 1000.0, h: 1000.0,所以实际上你'将头像 ImageView 的角半径设为 500.0pt。当您根据需要调用布局时,将计算正确的帧,并为您提供您期望的值。

关于ios - Swift/cornerRadius 和 masksToBounds 让 UIImageView 消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39560996/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com