Мне интересно, возможно ли анимировать представление внутри UIImageView без анимации слоя UIImageView. Я хочу, чтобы граница не анимировалась, и изображение обрезалось до границы, но чтобы изображение постепенно увеличивалось и уменьшалось по мере необходимости.

Я оживляю вот так:

func animateStart() {
    UIView.animate(withDuration: 3, animations: {
        self.firstImg.image = UIImage(named:"peter.JPG")
        self.firstImg.alpha = 1
    }, completion: { finished in
        if finished {
            self.animateSecond()
        }
    })
}

Установка границ как:

class RoundedImage: UIImageView {

  override func awakeFromNib() {
    self.layer.borderWidth = 5
    self.layer.borderColor = UIColor.darkGray.cgColor
    self.layer.cornerRadius = 15
    self.clipsToBounds = true
  }
0
froggomad 27 Май 2017 в 20:00

2 ответа

Лучший ответ

Не делайте границы на изображении.

Поместите границу в UIView и добавьте к этому представление изображения.

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

2
Fogmeister 27 Май 2017 в 17:08

Лучше использовать UIView (как контейнер вашего imageView) и поместить ваш imageView в него. Сделайте любую анимацию, которую вы хотите, в этом imageView (Fade in Fade out).

И вы получите кадр imageView (на самом деле это не так, за ним был UIView, который служил контейнером вашего imageView)

До исчезновения .

enter image description here

После исчезновения

enter image description here

Просмотр иерархии:

enter image description here

0
elk_cloner 27 Май 2017 в 18:11