3

私が持っている2つの画像で構成されるシンプルなカスタムローディングバーを作成したいと思います。1つは無地の背景用の画像で、もう1つは対角線用の画像です。私はiOSを初めて使用するので、2つのUIImageViewを使用するカスタムUIViewを作成します。各画像に1つずつ、アニメーションブロックを使用して対角線の画像を左から右に移動します。

私はすでにUIImageViewsとアニメーションブロックに精通しているので、このアプローチを採用しています。私の質問は...

  1. より良いアプローチを提案しますか?私はレイヤーにまったく精通しておらず、時間の制約があるため、今すぐそれらを読み上げる必要はありませんが、それがはるかに優れた実装を提供するかどうかは喜んでです。
  2. ローディングバーの端を「丸める」にはどうすればよいですか?私の現在のアプローチでは、これが私が得ようとしているものです...

ここに画像の説明を入力してください

あなたの知恵をどうもありがとう!

4

4 に答える 4

3

WNProgressViewを見てください、それはあなたが必要とすることをするかもしれません。

于 2012-11-14T18:16:15.593 に答える
2

これは、次の2つの方法を使用して実現できます。

1-このクラスをコードにインポートします #import <QuartzCore/QuartzCore.h>

次に、次の2行を-(void)viewDidLoadメソッドに追加して、ビューが読み込まれたときにバーが丸められるようにします。または、バーを丸め始めたい場所に追加できます。

barImageView.layer.cornerRadius = 10.0f;
barImageView.layer.masksToBounds = YES;

2-別の方法は次のコードを使用することです:

-(void)roundCorners:(UIRectCorner)rectCorner forView:(UIView*)view
{
    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds 
                                                   byRoundingCorners:rectCorner
                                                         cornerRadii:CGSizeMake(20.0, 20.0)];
    // Create the shape layer and set its path
    CAShapeLayer *maskLayer = [CAShapeLayer layer];
    maskLayer.frame = view.bounds;
    maskLayer.path = maskPath.CGPath;
    
    // Set the newly created shape layer as the mask for the image view's layer
    view.layer.mask = maskLayer;
}

次の行とviewDidLoadを追加するか、バーの丸めを開始する場所

[self roundCorners:UIRectCornerTopRight|UIRectCornerTopLeft|UIRectCornerBottomRight|UIRectCornerBottomLeft forView:[self.view.subviews objectAtIndex:0] withAngle:10];
于 2012-11-15T17:05:01.933 に答える
1

「無地の背景」ビューを「対角線」imageViewのコンテナビューにします。(対角線は背景のサブビューです)

次に、対角線サブビューで'clipsToBounds' = YESを設定し、必要に応じてフレームを再調整します。(対角線のimageViewが100%の進行状況を表すと仮定します)

ロードバーのimageViewに丸みを帯びた角がない場合は、CALayerのcornerRadiusプロパティを使用できます。

imageView.layer.cornerRadius = 6.0f;
于 2012-11-14T18:12:28.740 に答える
0

iOSを初めて使用する場合は、UIProgressViewを使用した方がよい場合があります。見た目は良くないかもしれませんが、同じ目的を果たし、はるかに簡単になります。歯車のように回転する円であるUIActivityIndi​​catorViewもあります。どちらもカス​​タムソリューションよりも使いやすいです。

参照:http ://developer.apple.com/library/ios/#documentation/uikit/reference/UIProgressView_Class/Reference/Reference.html

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIActivityIndi​​catorView_Class/Reference/UIActivityIndi​​catorView.html

于 2012-11-14T18:10:29.360 に答える