ImageView в ячейке просмотра таблицы не принимает всю ширину от начала - PullRequest
0 голосов
/ 03 марта 2020

У меня есть TableView и ImageView в ячейке, которая занимает всю ширину. Я установил все ограничения: ведущий, трейлинг, верх, низ, но все же он не работает. Всегда есть лидирующие пробелы, например, ImageView не растягивается на лидирующие, и я изменил цвет фона представления содержимого, чтобы ясно показать свою проблему.

enter image description here

Ответы [ 7 ]

0 голосов
/ 03 марта 2020

Я думаю, что проблема в том, что вы ссылаетесь на "imageView", который является контейнером изображений по умолчанию, предоставляемым tableviewcell.

Пожалуйста, проверьте, ссылаетесь ли вы на правильный ImageView, тот, который вы создали как IBOutlet, и установить все ограничения с помощью.

0 голосов
/ 04 марта 2020

Попробуйте переместить ячейку в отдельный перо, а затем зарегистрируйте этот перо в viewDidLoad и в cellForRow. Вызовите эту ячейку. Поместите одно представление, как mainView, в contentView, а затем вы можете наложить ограничения на этот mainView и воспроизвести его с этим. Вы должны избегать помещения ячеек внутри tableView, так как на это грязно смотреть: D

0 голосов
/ 03 марта 2020

Убедитесь, что ваши imageview leading constraint не связаны с полем superview.

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

0 голосов
/ 03 марта 2020

Swift

imgYourImageView.contentMode = .center

Попробуйте использовать их и проверьте правильность размера изображения. Для позиционирования изображения можно использовать следующие параметры:

  • scaleAspectFit // содержимое масштабировано до подходит с фиксированным аспектом. остаток прозрачен
  • redraw // перерисовка при изменении границ (вызывает -setNeedsDisplay)
  • center // содержимое остается того же размера. позиционируется отрегулировано.
  • scaleToFill
  • top
  • bottom
  • left
  • right
  • topLeft
  • topRight
  • bottomLeft
  • bottomRight

Happy Coding ... !! ! :)

0 голосов
/ 03 марта 2020

Просто добавьте цвет фона к вашему imageview, а затем посмотрите, выравнивается ли imageview с top/left/right/bottom. Если да, тогда проверьте imageview contentMode, если это centered или aspect fit. в этом случае измените это на scale to fill или Aspect Fill

0 голосов
/ 03 марта 2020
*Do following steps:
1) Change constraints with equalHeightsToSuperview,centerHorizontally,centerVertically,and a constant width.
2) Take outlet of the constant width constraint and while on runtime you should change the widthConstraint.constant = <WidthOfTheCell> in cell class
3)write self.layoutIfNeeded() in cell class
This is a new behavior/issue of the imageview in cell which inherits the size of Image and overrides the given constraints.*
0 голосов
/ 03 марта 2020

@ Ahsan Mughal

Попробуйте, я надеюсь, что это решит вашу проблему.

contentView.clipsToBounds = true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...