iOS 7.1では、UIProgressView
のカスタム画像プロパティが壊れているようです。進行状況ビューを正常にカスタマイズするために使用されていたコードは、デフォルトの外観になりました。
viewDidLoad
でこれを行うサンプルプロジェクトをセットアップしました。
self.progressView.frame = CGRectMake(self.progressView.frame.Origin.x, self.progressView.frame.Origin.y, self.progressView.frame.size.width, 9);
UIImage *img = [UIImage imageNamed:@"progress_bar_fill.png"];
img = [img resizableImageWithCapInsets:UIEdgeInsetsMake(0, 4, 0, 4)];
self.progressView.progressImage = img;
img = [UIImage imageNamed:@"progress_bar_empty.png"];
img = [img resizableImageWithCapInsets:UIEdgeInsetsMake(0, 4, 0, 4)];
self.progressView.trackImage = img;
まだデフォルトの外観が得られます。 img
が期待どおり非nilであることを確認しました。どうしたの?
更新: OpenRadar があります。また、サンプルプロジェクトで完全なレーダーを提出しました。
更新2: 以下のAxyで述べたように、これを追加してJEProgressViewを正しく動作させる必要があります。
_progressBar.tintColor = [UIColor clearColor];
これは非常に迷惑です。 UIProgressView
をサブクラス化せずにこれを修正する方法を見つけられませんでした。
とにかくこれを修正した方法は次のとおりです。 https://Gist.github.com/JohnEstropia/9482567
UIProgressView
の出現を、NIBおよびストーリーボードの出現を含め、JEProgressView
に変更する必要があります。
基本的に、UIProgressView
の子UIImageView
sに直接画像を強制的に割り当てる必要があります。
サブクラスは、layoutSubviews
をオーバーライドするために必要です。この場合、画像サイズに応じてimageViewsの高さを調整します。
あなたは正しいです。このバグは、7.1がXcode 5.1シード1に最初に登場して以来存在していました。私は、Xcode 5.1の5つのシードすべてに対して同じバグを送信(および再送信)しました。しかしAppleは修正しませんでした。
このバグも送信してください!あなたが好きなら私のバグを参照することができます:15547259。より良い!これは重大な破損と見なします。これは、正常に動作していたアプリが現在破損していることを意味するためです(progressImage
で進行状況ビューを使用する場合)。
私はジョン・エストロピアのソリューションを使用しましたが、青味がかったバーが私のオーバーレイに表示され、かなり奇妙なグラフィカル効果がありました。
追加した
_progressBar.tintColor = [UIColor clearColor];
そしてそれはうまくいきました。ソリューションマンに感謝します。
こんにちは、私はアプリにUIProgressViewを追加するために次のコードを使用しました:
UIProgressView *progressView;
progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault];
progressView.progressTintColor[UIColor colorWithRed:187.0/255 green:160.0/255 blue:209.0/255 alpha:1.0];
[[progressView layer]setCornerRadius:10.0f];
[[progressView layer]setBorderWidth:2.0f];
[[progressView layer]setMasksToBounds:TRUE];
progressView.clipsToBounds = YES;
[[progressView layer]setFrame:CGRectMake(30, 295, 260, 25)];[[progressView layer]setBorderColor[UIColor whiteColor].CGColor];
progressView.trackTintColor = [UIColor clearColor];
[progressView setProgress: (float)count/15 animated:YES];
コードがあなたに役立つことを願っています、私はここでそれを見つけました: コードのソース
John EstropiaのJEProgressViewファイルを実装しようとしましたが、うまくいきません。私は何か間違ったことをしたに違いない-しかし、私はこれに少し慣れていない。誰かがこれを正確に行う方法を説明できますか?馬鹿げた質問かもしれませんが、たくさんのグーグル検索の後、質問することが唯一の方法だと思いました。
私にとっては、これは進行状況イメージのiOSバージョン7.1以上で機能しました:
if ([[UIDevice currentDevice] systemVersion] >= 7)
self.progressView.tintColor = [UIColor colorWithPatternImage:img];
私もこのバグをキャッチしています。 UIProgressViewのプロパティで遊んで修正しようとしましたが、結果はありませんでした。上記のJohnのEstropiaソリューションも機能しません。自動レイアウトをサポートしていない可能性があるため、このバグを回避するための一時的なソリューションを独自に作成しました。 https://github.com/ninjaproger/AKProgressView