【发布时间】:2013-09-18 16:22:45
【问题描述】:
我在使用默认进度视图时遇到了渲染错误。使用默认进度视图时,视图不是 9px 高,而是裁剪到大约 4px。我的应用是使用 iOS6 SDK 构建的,在 iOS7 设备上运行时会出现问题。该界面是使用界面生成器构建的。
是否有解决此问题的简单方法?在界面生成器中将样式从“默认”切换为“条形”可以解决问题,但这会改变外观。
【问题讨论】:
标签: ios ios7 uiprogressview
我在使用默认进度视图时遇到了渲染错误。使用默认进度视图时,视图不是 9px 高,而是裁剪到大约 4px。我的应用是使用 iOS6 SDK 构建的,在 iOS7 设备上运行时会出现问题。该界面是使用界面生成器构建的。
是否有解决此问题的简单方法?在界面生成器中将样式从“默认”切换为“条形”可以解决问题,但这会改变外观。
【问题讨论】:
标签: ios ios7 uiprogressview
在代码中设置框架帮助我解决了这个问题。
【讨论】:
progressTintColor 和trackTintColor 而不是progressImage 和trackImage 设置样式,则设置框架似乎不起作用。
@iPP 的答案不是最好的。在代码中设置框架会导致您的代码充满 iOS 版本检查,并且当支持多个设备方向时,该代码往往会变得非常复杂。
我认为最好的方法是在 Xcode 5 中使用新功能“iOS 6/7 Deltas”。
而“iOS 6/7 Deltas”的关键用法是:
当 Auto Layout 关闭时,您会注意到 Interface Builder 实用程序区域(右窗格)的大小选项卡中的一个区域,允许您设置 iOS 6/7 Deltas。可以为每个视图单独设置增量,并按照您的预期工作。如果您的故事板或笔尖设置为在 iOS 6 中查看,那么设置增量将导致该视图在 iOS 7 中运行时按照设置的增量量移动和/或调整大小。或者,如果您的情节提要或笔尖设置为查看在 iOS 7 中,增量将在 iOS 6 中运行时应用。这两个工具都可以帮助您支持旧版本的 iOS 和 iOS 7
对于UIProgressView,这里你可以尝试将“delta Y”设置为-7px,因为iOS 7只是将UIProgressView的Y原点减少了7px,所以在iOS7中运行时,我们应该把它还给7px。
【讨论】:
这就像iOS7 的进度视图使用iOS7 Style 的框架。 你有两种方法。 1.设置进度视图样式---bar,可以在nib文件或者代码中进行。 2.使用代码设置框架。就像是: progressView.frame = CGRectMake(x,y,w,h);
当您旋转或更改布局时,第二个将面临布局问题。 所以最简单的方法是设置进度视图的样式。
【讨论】: