很可能有十幾個類似的標題做題,而據我所看到的,我已經納入從他們每個人的意見,沒有運氣旋轉。當我將設備從縱向旋轉到橫向時,我想更改背景圖像。但是,在我嘗試的每個實驗中,橫向上的UIImageView保持縱向大小。自動佈局:UIImageView的不與設備方向
我使用自動佈局,在IB配置,像這樣:
我視圖層次配置,像這樣:
當我旋轉設備,我想旋轉UIView viewBackground
(圖像和所有按鈕)中的所有內容。我相信我可以通過約束管理按鈕移動,但是需要自己旋轉UIImageView image view background
。所以,我添加以下代碼:
-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
int scaleFactor = self.traitCollection.displayScale;
NSString *source = @"drawn";
NSString *orientation;
if (size.width > size.height)
{
orientation = @"Landscape";
}
else
{
orientation = @"Portrait";
}
NSString *platform;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
{
platform = @"iPad";
}
else
{
platform = @"iPhone";
}
NSString *filename = [NSString stringWithFormat:@"%@ %@ %@ %.0fx%.0f.png", source, platform, orientation, size.width * scaleFactor, size.height * scaleFactor];
// CONFIRMED: we have assembled the correct new image name.
viewBackground.frame = CGRectMake(0, 0, size.width * scaleFactor, size.height * scaleFactor);
viewBackground.autoresizesSubviews = YES;
viewBackground.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
imageViewBackground.autoresizesSubviews = YES;
imageViewBackground.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
imageViewBackground.image = [UIImage imageNamed:filename];
}
問題:正確的圖像出現在屏幕上,但正如上面提到的,它仍然有畫像的尺寸。我確信圖像會隨着藝術品的顯着不同而變化,元素會水平疊放而不垂直。但是新的圖像在橫向模式下被水平切割。
我試圖把各種野生值到newRect
,和他們沒有任何區別。即使我從根本上改變newRect
中的原點,圖像也不會移動。所以我目前的理論是,我對視圖大小的改變被忽略/重寫。
問題:我錯過了什麼,可以防止將圖像調整爲橫向模式?有沒有其他汽車尺寸方面我沒有解決?