Не могу получить вид, чтобы изменить его размер - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть UIImageView внутри ForecastCell Class (для UICollectionView), во всяком случае, я не могу получить UIImageView внутри ячейки, чтобы изменить ее размер. Вот что я попробовал:

private func setupWeatherIcon(){
    self.addSubview(mWeatherIcon)

   //mWeatherIcon.frame.size.width = CGFloat(self.frame.width) / 2
   //mWeatherIcon.frame.size.height = CGFloat(self.frame.height) / 2
   mWeatherIcon.frame.size.width = 20
   mWeatherIcon.frame.size.height = 20

   mWeatherIcon.centerXAnchor.constraint(equalTo: self.safeAreaLayoutGuide.centerXAnchor).isActive = true
   mWeatherIcon.centerYAnchor.constraint(equalTo: self.safeAreaLayoutGuide.centerYAnchor).isActive = true
}

Это mWeatherIcon:

var mWeatherIcon: UIImageView = {
    let image = UIImageView(image: UIImage(named: "partly-cloudy"))

    image.translatesAutoresizingMaskIntoConstraints = false
    return image
}()

Независимо от того, какую ширину и высоту я установил, ширина и высота всегда остаются одинаковыми.

1 Ответ

0 голосов
/ 10 ноября 2018

Вам нужны ограничения по ширине и высоте.

self.contentView.addSubview(mWeatherIcon)

NSLayoutConstraint.activate([
   mWeatherIcon.centerXAnchor.constraint(equalTo:contentView.centerXAnchor),
   mWeatherIcon.centerYAnchor.constraint(equalTo:contentView.centerYAnchor),
   mWeatherIcon.widthAnchor.constraint(equalTo:contentView.widthAnchor,multiplier:0.5),
   mWeatherIcon.heightAnchor.constraint(equalTo:contentView.heightAnchor,multiplier:0.5)
])

Не забудьте реализовать этот метод

func collectionView(_ collectionView: UICollectionView, 
                  layout collectionViewLayout: UICollectionViewLayout, 
           sizeForItemAt indexPath: IndexPath) -> CGSize
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...