こんにちは、istoreがパスワードと名前を尋ねるときのようなポップアップウィンドウを作成するのに役立つライブラリまたはココアタッチの特別なビューはありますか?それとも画像2つのテキストフィールドと2つのボタンを備えた透明なビューですか?ログイン画面を同じようにしたいので必要です。ありがとう
2 に答える
似たようなビューを作成する場合は、UIAlertViewサブクラスを作成するのが最善の策です。独自のサブクラスを作成し、必要な要素を追加できます。
ヘッダーに次のようなUIAlertViewサブクラスを作成します。
@interface LoginView : UIAlertView {
// instance vars
}
// methods and properties
@end
LoginViewの実装については、次の点に注意してください...
UIAlertViewのサイズをコンテンツ(ボタン、ラベル)に合わせて変更するには、メッセージテキストをある程度の空の行に設定する必要があります。たとえば、UIAlertViewサブクラスで次の手順を実行して5つの空の行を追加できます。
// This is a subclass of UIAlertView
@implementation LoginView
- (id)init
{
self = [super init];
if (self)
{
// add as many newlines as you need to fit
// the controls (buttons, labels, etc...)
[self setMessage: @"\n\n\n\n\n"];
CGRect frame = CGRectMake(10.0f, 10.0f, 200.0f, 30.0f);
UILabel *label = [[UILabel alloc] initWithFrame:frame];
[label setBackgroundColor:[UIColor clearColor]];
[label setText:@"Username:"];
[self addSubview:label]
[label release];
}
return self;
}
^他のUIViewと同じように、ボタンとラベルを追加するだけです。このビューのインスタンスを作成し、-showメソッドを呼び出して、ビューを表示します。例:
#import "LoginView.h"
- (void)displayLogin
{
LoginView *loginView = [[[LoginView alloc] init] autorelease];
[loginView show];
}
LoginViewをより柔軟にするには、ターゲット(タイプid)とセレクター(タイプSEL)を受け入れるカスタム初期化子を作成します。誰かがログインボタンを押したら、ターゲットとセレクターを使用して実際のログインを実行するようにします。または、ログインコードをLoginView自体に配置し、ログインが成功したかどうかを呼び出し元に通知するデリゲートを作成します。
このアプローチは、空の行が含まれる一種の「ハッキー」ですが、結果は非常に見栄えがします:)
PS:このようなビューを作成するときは、インスタンスで-setMessage:を呼び出さないでください。ビューのサイズ(フレーム)がリセットされます(または、サイズ変更を防ぐためにサブクラスでsetMessage:がオーバーライドされます)。テキストを書き込むためのラベルが必要な場合は、独自のラベルを作成してサブビューとして追加します。
あなたはあなた自身のViewControllerの男を作成する必要があります