2015-08-26 5 views
1

Мне кажется, что я что-то пропускаю: Мое изображение все еще появляется как алмазная форма. Я пытаюсь заставить его быть круговым.круглый профиль pic swift

класс MenuViewController: UIViewController {

@IBOutlet var profileImageView: UIImageView! 


override func viewDidLoad() { 
    super.viewDidLoad() 


    profileImageView.layer.cornerRadius = profileImageView.frame.size.width/2; 
    profileImageView.clipsToBounds = true; 

     } 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
     } 

}

+0

Вы используете раскадровки? Вы используете автоматическую компоновку? –

ответ

2

Вполне возможно, что profileImageView меняет свой размер после viewDidLoad и в конечном итоге меньше, чем это было, когда вы установите радиус угла. Вы можете проверить эту теорию, переместив код угла радиуса в viewDidAppear.

+0

'viewDidLayoutSubviews' будет лучше. Он вызывается после автоматического макета, но перед тем, как открывается вид на экране. – vacawama

+0

спасибо. так много –

0

Похоже, вам может потребоваться изменить clipsToBounds = true на layer.masksToBounds = true, поскольку маскирование должно произойти на слое, а не на самом изображении. У меня такой же эффект в моем приложении, вот код:

imageView.layer.cornerRadius = imageView.frame.size.width/2.0 
imageView.layer.borderColor = UIColor.whiteColor().CGColor 
imageView.layer.borderWidth = 2.0 
imageView.layer.masksToBounds = true 

Надеюсь, что это поможет.