我已經使用AutoLayout設置了UIImageView。我已經爲頂部,底部,頂部和尾部設置了限制(我希望根據手機的大小改變寬度和高度)。在我的屬性檢查器中,它還顯示圖像視圖的寬度和高度。出於某種原因,當第一次加載視圖時,頂部空間到頂部佈局約束被忽略,圖像離開屏幕,並且IB的高度被使用(332)。添加照片後,視圖會按預期調整大小。我NSLogged圖像視圖的幀高度,它正在改變。我不明白,我認爲圖像視圖的FRAME總是一樣的。我沒有收到任何自動佈局錯誤,一切都是藍色的。 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 Docs,並沒有提到基於圖像大小改變幀的內容。這很重要,因爲我正在根據幀大小調整圖像大小。
你必須給圖像視圖的寬度和高度約束,並將圖像視圖放置在uiview中,並給出前導和tralig以及頂部和底部的uiview約束 –