我有一个奇怪的问题。当我加载包含两个文本字段的tableview(一个用于电子邮件,一个用于密码)时,我只能看到光标的底部。就好像有一些东西覆盖输入区域(请参见下图)。此问题仅在我从iOS6定位到iOS7时开始。
任何想法可能会出现问题吗?
这是我的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
CGRect frame;
frame.origin.x = 10;
frame.origin.y = 10;
frame.size.height = 30;
frame.size.width = 200;
UILabel *label = [[UILabel alloc] initWithFrame: frame];
label.font = [UIFont boldSystemFontOfSize:16.0];
label.text = [arrayLogin objectAtIndex:indexPath.row];
[cell.contentView addSubview:label];
frame.origin.x = 10;
frame.size.height = 90;
frame.size.width = 280;
if (indexPath.row == 0) {//user name part
userNameTextField = [[UITextField alloc ] initWithFrame: frame];
userNameTextField.returnKeyType = UIReturnKeyDefault;
userNameTextField.delegate = self;
userNameTextField.placeholder = @"Email";
[cell.contentView addSubview:userNameTextField];
}else
{
passwordTextField = [[UITextField alloc] initWithFrame:frame];
passwordTextField.returnKeyType = UIReturnKeyDefault;
passwordTextField.secureTextEntry = YES;
passwordTextField.delegate = self;
passwordTextField.placeholder = @"Password";
[cell.contentView addSubview:passwordTextField];
}
return cell;
}
答案 0 :(得分:2)
默认行高为44(不确定 - 靠近它。)
在您的代码中,您使用frame.size.height = 90;
作为单元格中的subView添加。
所以它超过了你的细胞高度。
要制作自定义单元格高度,您应该更改以下委托方法:
-(CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath
{
//NSLog(@"HeightForRow");
return 44+50;//ofcourse change it as you wish
}
我还想将textField的frame.origin.y
更改为42
和文本frame.size.height
到90 -42