【问题标题】:UIProgressView track and progress images not working in iOS7UIProgressView 跟踪和进度图像在 iOS7 中不起作用
【发布时间】:2014-02-23 11:26:57
【问题描述】:

我有一个自定义的 UIProgressView,其中包含进度和跟踪图像。我还自定义了进度视图的大小。这在 iOS 6 中运行良好。我在让它在 iOS7 中运行时遇到问题。

_progress.progressViewStyle = UIProgressViewStyleBar;
_progress.trackImage = [UIImage imageNamed:@"summary-progress-track.png"];
_progress.progressImage = [UIImage imageNamed:@"summary-progress.png"];
_progress.frame = CGRectMake(50, 50, 100, 10);

不仅高度会被忽略,而且自定义图像也不会被应用。我只是得到一个像这样的蓝色进度条:

我认为默认的色调会以某种方式覆盖进度图像。我也尝试过使用 UIAppearance 进行设置,但没有成功。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [[UIProgressView appearance] setProgressImage:[UIImage imageNamed:@"summary-progress.png"]];
    [[UIProgressView appearance] setTrackImage:[UIImage imageNamed:@"summary-progress-track.png"]];

    return YES;
}

【问题讨论】:

  • 查看link
  • 感谢 pawan,但不幸的是我没有使用自动布局,所以它不适用。

标签: ios objective-c ios7 uikit


【解决方案1】:

我个人使用 MPProgressHUD 来跟踪视图的所有进度。这是下载链接 https://github.com/jdg/MBProgressHUD

用法很简单。这是您可能想查看的教程。

http://code.tutsplus.com/tutorials/ios-sdk-uiactivityindicatorview-and-mbprogresshud--mobile-10530

MPProgressHUD 具有显示自定义图像的特定方法。

【讨论】:

  • 感谢您的建议,我已经在使用 MBPrgress hud 但在不同的上下文中。我仍然希望能够针对不同的用例自定义 UIProgressView。
【解决方案2】:

如果您还没有看过这篇文章,这应该会有所帮助。

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/UIKitUICatalog/UIProgressView.html#//apple_ref/doc/uid/TP40012857-UIProgressView-SW1

蓝色是 iOS7 中应用的控件的默认色调。

【讨论】:

  • Preson,我已经尝试过 UIAppearance API,它没有任何作用。
【解决方案3】:

找到了解决办法。如果其他人被困在这个问题上,请查看这个答案和建议的代码来解决这个问题:UIProgressView custom track and progress images in iOS 7.1

【讨论】:

    【解决方案4】:

    我打印进度的子视图,发现其中一个的frame width是0,

    之后

        [_videoProgressView setProgress:progress animated:NO];
    

    重置轨迹和进度图像

        UIImageView *trackImageView = _videoProgressView.subviews.firstObject;
        UIImageView *progressImageView = _videoProgressView.subviews.lastObject;
        CGRect trackProgressFrame = trackImageView.frame;
        trackProgressFrame.size.height = _videoProgressView.frame.size.height;
        trackImageView.frame = trackProgressFrame;
        progressImageView.frame = trackProgressFrame;
        progressImageView.image = progressImage;
        trackImageView.image = trackImage;
    

    【讨论】:

      猜你喜欢
      • 2011-12-20
      • 1970-01-01
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-14
      相关资源
      最近更新 更多