how can i make popup login window similar as on is

2019-08-03 04:49发布

Hi is there any library or special view in cocoa touch which help to create a popup window like when the istore ask you for your password and name?or is it transparent view with image 2 textfields and 2 buttons? I need it because i want to make my login screen similar. thanks

2条回答
贪生不怕死
2楼-- · 2019-08-03 05:33

you need to create your own view controller dude

查看更多
三岁会撩人
3楼-- · 2019-08-03 05:50

If you want to create a view that looks similar, your best bet is probably to create a UIAlertView subclass. You could create your own subclass and add the required elements.

Create a UIAlertView subclass like this in the header:

@interface LoginView : UIAlertView {
    // instance vars
}

// methods and properties 

@end 

As for the implementation of LoginView, please keep in mind the following ...

In order to resize the UIAlertView to fit your contents (buttons, labels), you'd have to set the message text to some amount of empty lines, e.g. you could add 5 empty lines by doing the following on your UIAlertView subclass:

// 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;
}

^ Just add buttons and labels like on any other UIView. Create an instance of this view and call the -show method to display the view, e.g.:

#import "LoginView.h"

- (void)displayLogin 
{
    LoginView *loginView = [[[LoginView alloc] init] autorelease];
    [loginView show];
}

To make the LoginView more flexible, create a custom initializer which accepts a target (of type id) and selector (of type SEL). When someone presses the login button, make it use the target and selector to perform the actual login. Or put the login code in the LoginView itself and create a delegate that informs the caller whether a login was successful.

This approach is kind of 'hacky' with the empty line stuff, but the result looks very nice :)

P.S.: remember that when you create a view like this, you shouldn't call -setMessage: on the instance, as it will reset the size (frame) of the view (or override setMessage: on the subclass to prevent resizing). If you need some label to write text on, create your own label and add it as a subview.

查看更多
登录 后发表回答