同じサイズの多くの UIView を使用し、同じ 2 つのラベル (ラベル内のテキストは異なります) を使用するアプリに取り組んでおり、ここで抽象化を使用して、ラベルが組み込まれた UIView サブクラスを作成する必要があると考えています。
同じサイズのビューを作成し、そのビュー内の同じ場所に 2 つのラベルを持つクラスが必要です。ビューの角を丸めることができれば、余分なポイント。
どうすればこれを行うことができますか?
いくつかの場所でビューを再利用する必要がある場合に行うことは、.xib ファイルを使用してカスタム UIView を作成し (.xib ファイルを使用して UI をセットアップするのは非常に簡単です)、nib をロードして作成するメソッドを作成します。そのクラスの新しいインスタンス。追加のセットアップ方法も提供するので、あなたの場合は次のようなものを作成します。
@propertie(nonatomic, weak) IBOutlet UILabel *fitstLabel;
2 番目のラベル用に と を作成します。(アウトレットをリンクするときは注意してください(ファイルの所有者ではなくビューにリンクしてください)+(YourViewName*)instantiateViews;
メソッドまたはそれを呼び出したいものを作成し、実装で次のようにします。
+(YourViewName *)instatiateViews { NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"TheXibFileName" owner:nil オプション:nil]; return [views objectAtIndex:0]; }
ニーズに合わせて他のセットアップ方法を追加します。
ビューの角を丸くする必要が#import <QuartzCore/QuartzCore.h>
あり、次のようなメソッドを作成できます。
-(void)setViewsRoundedCornersWithCornerRadius:(CGFloat)radius {
self.layer.cornerRadius = radius;
}
そして今、このカスタム ビューの新しいインスタンスが必要な場合は、次のように呼び出すだけです。
YourViewName *customView = [YourViewName instantiateViews];
その後、すべてのセットアップ メソッドを呼び出すことができます。
これを段階的に取ってください。独自のカスタムUIView
クラスを作成することから始めます。背景色を設定して、設定できるようにすることもできます。このカスタム ビューを使用するようにコードを更新します。
それが完了して機能したら、次のレベルに進みます。カスタム ビューで 2 つのラベルを作成し、それ自体に追加します。ラベルにハードコーディングされたテキストから始めます。サイズと位置を正しく調整してみてください。これは、適切なフレーム サイズとautoresizingMask
値を使用して実行できます。また、layoutSubviews
メソッドをオーバーライドして、ラベルの位置とサイズを手動で変更することもできます。
それが機能したら、クラスを更新して、このクラスのユーザーが 2 つのラベルのテキストを設定できるようにするプロパティまたはメソッドを提供します。
最後に、ビューのレイヤーをセットアップして、丸みを帯びた角と境界線を使用するようにします。
このような問題を小さなステップに分割することで、少しずつ作業を進めることができます。一度にすべてをコーディングしてから、それが機能しない理由を突き止めようとしないでください。
これにより、行き詰まった場合に SO についてより詳細な質問をすることもできます。さらに良いことに、ドキュメントを読んで、問題全体ではなくその 1 つの詳細を扱う関連サンプルを検索できるように、焦点を絞り込むことができます。