#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
для своей цели.