2013-12-21 121 views
0

我有一個奇怪的問題。當我加載包含兩個文本框的表格視圖(一個用於電子郵件和一個用於密碼)時,我只能看到光標的底部。就好像有東西覆蓋了輸入字段(請參閱下圖)。這個問題僅在我從iOS6定位到iOS7時纔開始。UITableView輸入字段被覆蓋

任何想法可能會在這裏出錯?

enter image description here

這裏是我的代碼:

- (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

的問題發生在iOS6上?如果是這樣我會建議將標籤背景顏色設置爲clearColor。 請嘗試它並告訴我你得到了什麼,我認爲標籤重疊在你的tetield的上部 –

+0

只有當它升級到iOS7時注意到它 – user2492064

+0

謝謝,我試過了,仍然得到同樣的問題。我甚至嘗試刪除整個標籤,仍然有問題 – user2492064

回答

2

默認的行高44(不知道-anyway接近)

在你的代碼使用frame.size.height = 90;您在您的單元格中添加爲子視圖。 所以它超過了你的細胞高度。

爲了使自定義單元格的高度,你應該改變以下的委託方法:

-(CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath 
{ 
    //NSLog(@"HeightForRow"); 
    return 44+50;//ofcourse change it as you wish 
} 

也是我想你想的frame.origin.y的文本框更改爲42 和文字frame.size.height 90 -42