Я пишу приложение с изображением, которое должно быть аватаром. Поэтому я хочу, чтобы этот аватар был полностью круглым. Я использую AutoLayout, и я знаю, как сделать изображение идеального круга даже с ограничениями без использования задержки! Но теперь я использую Tab Bar View (с TabBarView Controller), и когда я пытаюсь открыть вкладку с аватаром, я столкнулся с проблемой: изображение не является полным кругом. Это не ромб, но это еще не круг. Но если я попробую другие бары, а затем вернусь в бар с аватаром, это будет идеальный круг. Посмотрите в GIF анимацию ниже, и вы увидите все:UITabBarView сделать изображение круга
Существует код, чтобы сделать это:
@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
}
Но ни один из этих методов не работает должным образом. Пожалуйста, может быть, кто-то знает, как это исправить?
Я думаю, я нашел решение, но оно довольно медленно: переопределение функ viewDidAppear (анимированный: Bool) { userAvatarImageView.layer.cornerRadius = userAvatarImageView.bounds.size.width/2,0 } знает кого-нибудь лучший путь? – Alex