2017-02-08 12 views
-1

Я пытаюсь сделать круговое изображение в Swift, я искал вокруг и смотрел пару видео на YouTube. Решения, предлагаемые очень легко, но когда я использовал их я получаю изображение, сформированное в глаза, а не по кругу, ниже мой контроллер представления и изображение пользовательского интерфейсаУгловой радиус неправильный - круговое изображение выглядит как глаз

var experimentIdentifier: String = "" 


@IBOutlet weak var foregroundImage: UIImageView! 
override func viewDidLoad() { 
    super.viewDidLoad() 

    foregroundImage.layer.cornerRadius = (foregroundImage.frame.size.width)/2 
    foregroundImage.layer.masksToBounds = true 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

Supposed to be a circular image

+0

Перед установкой радиуса угла попробуйте вызвать 'self.view.layoutIfNeeded()'. – Kimdv

+1

Ваше изображение квадрата вначале? Использование cornerRadius работает только с квадратным представлением. Вы можете добавить ограничения, чтобы гарантировать, что ваше изображение является квадратом (задайте высоту и ширину) и настройте его соответствие с атрибутом contentMode (например, заполнение формы). – Ocunidee

+1

Сделайте свое изображение квадратом и используйте «contentMode» изображения для управления какая часть обрезается. –

ответ

2

это потому, что ваш образ не является квадратом.

Смотрите эту проблему в действии:

Установите изображение в ширина: высота = 2: 1 прямоугольник в раскадровке

enter image description here

затем запустить, изображение будет выглядеть так:

enter image description here

но если изображение является квадратом, как это в раскадровке

enter image description here

выберите команду Выполнить, это будет, как

enter image description here

Наслаждайтесь кодированием!

0

Try Это,

 let profileImageView = UIImageView() 
     profileImageView.frame = CGRectMake(150, 150, 60, 60) 
     profileImageView.layer.borderWidth = 1 
     profileImageView.layer.borderColor = UIColor.grayColor().CGColor 
     profileImageView.backgroundColor = UIColor.yellowColor() 
     profileImageView.layer.cornerRadius = 60/2 


     let image = UIImage(named: "yourImageName") 
     profileImageView.layer.cornerRadius = profileImageView.frame.size.height/2 
     profileImageView.clipsToBounds = true 
0

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

foregroundImage.layer.cornerRadius = 0.5 * your image height 
foregroundImage.layer.masksToBounds = true 
foregroundImage.clipsToBounds = true 

Я надеюсь, что это поможет

0

убедитесь, что изображение является квадратом затем добавить этот код

foregroundImage.layer.cornerRadius = side/2 
    foregroundImage.layer.masksToBounds = true