0

ScrollView を含む UIViewController があり、テキスト ラベルと imageView を持つ別の UIView (ビュー コントローラーに接続されていない) があります。高さは 200px です。

基本的に、個別のUIViewの束をインスタンス化し、それらのテキストラベルと画像を設定してから、それらをサブビューとしてScrollViewに追加したいと考えています。これを設定する最善の方法がわかりません.. UIView を別の UIViewController クラスにする必要があり、それらを子ビュー コントローラーとして追加する必要がありますか? または、UIView クラスを .xib のファイル所有者にすることはできますか?

4

2 に答える 2

0

Someviewなど、ビュー用に別のクラス (.h および .m ファイルを使用) を作成したと仮定しています。

Someview.h

@interface Someview : UIView

@property(strong) UITextField *field;

@end

Someview.m

@interface Someview ()

@end

@implementation Navigator
@synthesize field;

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code

    }
    return self;
}

@end

このビューの多くのインスタンスを追加したい場合は、実用的にスクロールビューに追加するだけです。

メインコントローラーでは、ループを実行して多くのsomeViewインスタンスを作成し、それらの位置を設定できます。

従うべきコード:

Someview *instance = [[Someview alloc] initWithFrame:yourFrame];
[scrollview addSubview:instance];
于 2013-07-09T14:03:22.830 に答える
0

カスタム UITableViewCells が UITableViews の xib ファイルから作成されるのと同じ方法でそれを行うことができます。

xib ファイルには、それを使用する UIViewController に設定された FilesOwner がまだありますが、最上位の要素は、作成してカスタマイズする UIView のサブクラスになります。

UIViewController で、(UINib を使用して) xib ファイルをインスタンス化し、これを UIScrollView に追加します。

編集:もう少し詳細:

カスタム ビュー MyView があり、それには xib ファイル MyView.xib があります。

@interface MyView : UIView
    @property (strong, nonatomic) IBOutlet UILabel *myLabel;
@end

xib ファイルでは、最上位ビューは MyView (cmd-alt-3 を使用) であり、クラスを UIView から MyView に変更します。

Files Owner は MyViewController に設定されます。新しい参照アウトレットを MyView から FilesOwner にドラッグして、それらをリンクできます。

UIViewController では、次のように MyView.xib をロードできます。

UINib *myViewNib = [UINib nibWithNibName:@"MyView" bundle:[NSBundle mainBundle]];
[myViewNib instantiateWithOwner:self options:nil];

そして、それは UIViewController の MyView プロパティを取り込みます: すなわち

@interface MyViewController : UIViewController
    @property (strong, nonatomic) IBOutlet MyView *myView;
@end
于 2013-07-09T14:09:38.297 に答える