iOS: текстовое поле в виде таблицы для экрана входа в систему?

#iphone #objective-c #ios #xcode #login-control

#iPhone #objective-c #iOS #xcode #вход-контроль

Вопрос:

Я хочу создать экран входа в систему, подобный экрану из приложения Facebook. Часть, которую я хочу воспроизвести, — это два текстовых поля, которые при сложении выглядят как группа таблиц. Я не могу понять, как они это сделали.

Кто знает трюк?

Я не могу опубликовать картинку, потому что я новичок в stackoverflow. Получается, что они выглядят как один округлый овал, но с 2 текстовыми полями внутри. Одно для имени пользователя, одно для пароля.

Комментарии:

1. Вас также может заинтересовать этот элемент управления, который уже был написан: cocoacontrols.com/platforms/ios/controls/ddalertprompt

2. Если вы хотите загрузить изображение, вы можете использовать приведенный ниже элемент управления, который показан на связанном изображении: img31.imageshack.us/img31/566/screenshot20111015at317.png

Ответ №1:

вы можете использовать приведенный ниже код.

// в файле .h

 UITextField *loginId; 
UITextField *password ;
  

// в файле .m

 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
        return 2;
    }
    - (UITableViewCell *)tableView:(UITableView *)table cellForRowAtIndexPath:(NSIndexPath *)indexPath {

        UITableViewCell *cell = [table dequeueReusableCellWithIdentifier:@"Cell"];
        if( cell == nil)
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"] autorelease];   

        if (indexPath.row == 0) {
            loginId = [[UITextField alloc] initWithFrame:CGRectMake(5, 0, 280, 21)];
            loginId .placeholder = @"loginid";
            loginId .autocorrectionType = UITextAutocorrectionTypeNo;
            [loginId setClearButtonMode:UITextFieldViewModeWhileEditing];
            cell.accessoryView = loginId ;
        }
        if (indexPath.row == 1) {
            password = [[UITextField alloc] initWithFrame:CGRectMake(5, 0, 280, 21)];
            password.placeholder = @"Password";
            password.secureTextEntry = YES;
            password.autocorrectionType = UITextAutocorrectionTypeNo;
            [password setClearButtonMode:UITextFieldViewModeWhileEditing];
            cell.accessoryView = password;
        }
        loginId.delegate = self;
        password.delegate = self;


        [tableView1 addSubview:loginId];
        [tableView1 addSubview:password];
        [loginId release];
        [password release];

        cell.selectionStyle = UITableViewCellSelectionStyleNone;
        return cell;  
    }
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

        return 1;
    }
  

Комментарии:

1. Пожалуйста, используйте опцию комментариев для комментариев.

2. Отличный ответ, но один вопрос. Есть ли способ переместить положение 2 сгруппированных ячеек или они должны оставаться в верхней части экрана?

Ответ №2:

Возьмите код отсюда: https://github.com/c99koder/lastfm-iphone

если вы загрузите код и посмотрите на FirstRunView.xib, вы увидите ту же реализацию, что и хотелось бы.

Комментарии:

1. Просто предупреждаю всех, кто смотрит на код lastfm, он использует изображения для достижения эффекта сгруппированного представления таблицы.

Ответ №3:

Ах! Я получил ответ. Это просто искусство. Это UIImage, который выглядит как табличный вид с 2 ячейками с UITextFields без полей. Почему я никогда не догадываюсь, что это искусство?

Ответ №4:

Просто используйте UIView с закругленными углами для фона и добавьте два текстовых поля в качестве дополнительных представлений.

Ответ №5:

Вы можете взять UITableView и добавить UITextField as accessoryType для своей цели.