[英]finding image position in landscape and portrait in UIWebView when orientation changes
[英]UInavigationbar background image does not resize correctly when orientation changes from landscape to portrait
我正在嘗試將uinavigationbar的背景圖像設置為縱向和橫向。 我正在使用以下代碼:
UIImage *navbarImage = [[UIImage imageNamed:@"navbar"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 9.0, 0, 9.0)];
UIImage *navbarLandscapeImage = [[UIImage imageNamed:@"navbar-landscape"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 9.0, 0, 9.0)];
[[UINavigationBar appearance] setBackgroundImage:navbarImage
forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundImage:navbarLandscapeImage
forBarMetrics:UIBarMetricsLandscapePhone];
但是,在iOS5.1模擬器中,當我將方向從縱向更改為橫向更改為縱向時,使用的圖像是navbar-landscape.png而不是navbar.png。
以下是一些示例圖片:
縱向默認:
更改為景觀:
改回縱向:
有誰知道這里的問題是什么? 我不確定為什么使用了錯誤的圖像。
實際上,事實證明問題出在模擬器中。 我嘗試了上述所有解決方案,但對於何時解決問題都沒有任何幫助。
您在哪里設置? 您可以嘗試將其添加到-(void)viewWillLayoutSubviews。
您可以只提供一張用於風景和potrait的圖像,而不必使用兩個不同的兩個不同的圖像,而不必像這樣給UIEdgeinset
UIImage *navbarImage = [[UIImage imageNamed:@"navbar"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 9.0, 0, 9.0)];
您可以指定頂部和底部插圖,以便於調整高度
UIImage *navbarImage = [[UIImage imageNamed:@"navbar"]
resizableImageWithCapInsets:UIEdgeInsetsMake(some value according the image u have, 9.0, some value according the image u have, 9.0)];
在縱向模式下:UINavigationBar Height = 44。
在橫向模式下:UINavigationBar的高度= 32
如果希望它們相同,則需要考慮它們的高度。 例如:
- (void)viewWillAppear:(BOOL)animated {
CGRect navframe = [[self.navigationController navigationBar] frame];
navframe.size.height = 44.0f;
[self.navigationController navigationBar].frame = navframe;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.