Я создал UIImageView с использованием AutoLayout. Я установил ограничения для верхнего, нижнего, верхнего и конечного (я хотел бы, чтобы ширина и высота изменялись в зависимости от размера телефона). В моем инспекторе атрибутов также отображается ширина и высота изображения. По какой-то причине, когда представление сначала загружено, ограничение Top Space to Top Layout игнорируется, и изображение отключается от экрана, а высота в IB используется (332). Как только фотография будет добавлена, вид изменится так, как ожидалось. Я NSLogged высоту кадра изображения, и она меняется. Я не понимаю, я думал, что рамка изображения будет всегда одинаковой. Я не получаю ошибок автоматического макета, все синее. UIImageView Изменение размера кадра с помощью AutoLayout
UIImage *imageToView = [existingImage resizedImageWithBounds:self.selectPhoto.frame.size];//Resize the image for better performance
self.selectPhoto.contentMode =UIViewContentModeScaleAspectFit;
NSLog(@"Select Photo Frame Size Height is %f", self.selectPhoto.frame.size.height); //The first time this screen loads, this height is 332. Every other time (after the user enters a new photo, the height is 310 which is what I want.
self.selectPhoto.image = imageToView;
Резюме: Почему мой self.selectPhoto (который является большим видом изображения, показанный на скриншоте) .frame меняется? Я дважды проверял документы Apple, и он ничего не говорит о смене кадра, основываясь на размере изображения. Это важно, потому что я изменяю размер изображения на основе размера рамки.
Вы должны указать ограничение ширины и высоты для просмотра изображения и разместить изображение в формате uiview и предоставить ограничения uiview ведущих и tralig и сверху и снизу –