Сделать вид круговым без masksToBounds

как видно на радаре (28342777) — в iOS10 возникает проблема при создании UIImageView. Так как представления создаются автоматически (1000x1000px), иногда они не отображаются.

отключение masksToBounds заставит их отображаться правильно, но не позволит сделать цикл. Я пытался использовать cornerRadius сам по себе, но это не сработает.

Есть ли обходной путь?


person JVS    schedule 23.09.2016    source источник
comment
Не можете ли вы инициировать представление с меньшим кадром при создании экземпляра?   -  person Woodstock    schedule 23.09.2016
comment
Я так делал в ИБ. У меня есть ограничения, говорящие о ширине = высоте = 64. Но это не меняется   -  person JVS    schedule 23.09.2016
comment
Не могли бы вы попробовать создать подкласс, имея свой собственный инициализатор, который вызывает init и впоследствии устанавливает кадр, таким образом, это делается для вас до того, как изображение будет установлено?   -  person Woodstock    schedule 23.09.2016
comment
@ Вудсток не уверен, как это сделать. Я использую пользовательские TableViewCells с UIImageView. Нужно ли мне кодировать это в моем классе customCell?   -  person JVS    schedule 23.09.2016
comment
на самом деле я думаю, что здесь показано еще более простое решение, проверьте его: stackoverflow.com/questions/39475456/   -  person Woodstock    schedule 23.09.2016
comment
@Woodstock теперь нашел решение с твоей помощью. В моем классе ячеек я поставил чуть выше masksToBounds = true - self.layoutIfNeeded(). Мне также нужно было вызвать self.userInteractionEnabled = true   -  person JVS    schedule 23.09.2016


Ответы (1)


Если вам нужно сделать цикл UIImageView, вы должны сделать это в методе viewDidLayoutSubviews вместо метода viewDidLoad, как:

override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()

        self.yourImageView.layer.cornerRadius = self.yourImageView.frame.size.height/2
        self.yourImageView.clipsToBounds = true

    }
person Aakash    schedule 23.09.2016