旋转到横向时拉伸 UIToolbar 背景图像

Posted

技术标签:

【中文标题】旋转到横向时拉伸 UIToolbar 背景图像【英文标题】:Stretching a UIToolbar background image when rotating to landscape 【发布时间】:2012-06-29 00:38:51 【问题描述】:

我正在使用以下代码将图像添加到 App Delegate 中的 UIToolbar 的背景:

[[UIToolbar appearance] setBackgroundImage:
[UIImage imageNamed:@"toolbarbackground.png"] 
                             forToolbarPosition:0 barMetrics:UIBarMetricsDefault];

图像宽度为 768 像素(iPad 纵向屏幕宽度的大小)。当我旋转为横向时,图像不会拉伸以填充新的屏幕宽度(1024 像素)。如何在旋转时拉伸以适应屏幕的 UIToolbar 上的自定义背景图像?

【问题讨论】:

【参考方案1】:

工具栏是否自动调整大小?如果没有,设置它的自动调整大小掩码:

[myToolbar setAutoresizingMask: UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleRightMargin]

如果工具栏自动调整大小而图像仍然没有,请将图像视图的contentMode 设置为UIViewContentModeScaleToFill

【讨论】:

【参考方案2】:
UIImage *navBarImagePortrait = [UIImage imageNamed:@"navbar-portrait"];
navBarImagePortrait = [navBarImagePortrait resizableImageWithCapInsets:UIEdgeInsetsMake(1, 0, 0, 2)];
UIImage *navBarImageLandscape = [UIImage imageNamed:@"navbar-landscape"];
navBarImageLandscape = [navBarImageLandscape resizableImageWithCapInsets:UIEdgeInsetsMake(1, 0, 0, 2)];

// custom NaviagionBar
[self.toobar setBackgroundImage:navBarImagePortrait forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
[self.toobar setBackgroundImage:navBarImageLandscape forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsLandscapePhone];

【讨论】:

以上是关于旋转到横向时拉伸 UIToolbar 背景图像的主要内容,如果未能解决你的问题,请参考以下文章

怎么让网页的背景图片随着页面的拉伸而拉伸

html如何背景图片拉伸

当我从纵向模式更改为横向时,按钮背景图像消失

IOS11旋转设备时UIToolbar左右间距

UIToolbar 内的 UISegmentedControl 的横向高度确实错误

当我从纵向模式更改为横向时,按钮背景图像消失