сделайте UIImageView круглым, но перед округлением появится квадратная рамка - PullRequest
0 голосов
/ 17 июня 2020

Я пытался округлить фото UIImageView следующим образом:

in viewDidLoad ():

    photo = UIImageView()
    photo.image = UIImage(named: "head")?.withRenderingMode(.alwaysTemplate)
    topView.addSubview(photo) 
    photo.snp.makeConstraints{ make in
        make.top.equalToSuperview().offset(gap*3)
        make.height.width.equalTo(80)
        make.centerX.equalToSuperview()
        }
override func viewWillLayoutSubviews() {
        photo.makeRounded()
    }
extension UIImageView {
    func makeRounded() {
        self.layer.cornerRadius = self.frame.height / 2
        self.layer.borderWidth = 2
        self.layer.masksToBounds = false
        self.layer.borderColor = UIColor.customyellow.cgColor
        self.clipsToBounds = true
    }
}

Но когда я переключаюсь на этот вид на симуляторе, появится квадратная рамка, которая затем изменится на круг. Есть ли способ решить эту проблему? Спасибо!

РЕДАКТИРОВАТЬ: Я решил эту проблему с помощью DispatchQueue. Благодаря этому комментарию к другому посту. Как быстро установить изображение по кругу

Ответы [ 2 ]

0 голосов
/ 22 июня 2020

Вызвать метод photo.makeRounded () в viewDidLoad () вместо viewWillLayoutSubviews ()

0 голосов
/ 17 июня 2020

photo = UIImageView().makeRounded()

...