簡體   English   中英

文本框未添加到所有UITableViewCells

[英]Text box not added to all UITableViewCells

- (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] autorelease];

  }

    // Configure the cell...
 if(indexPath.row < 8)
 {
  CGRect textRect = CGRectMake(10, 10, 300, 31);
  UITextField *myfield = [[UITextField alloc]initWithFrame:textRect];
  myfield.borderStyle = UITextBorderStyleRoundedRect;
  myfield.font = [UIFont systemFontOfSize:22.0];
  myfield.adjustsFontSizeToFitWidth = YES;
  myfield.minimumFontSize = 2.0;

  myfield.clearButtonMode = UITextFieldViewModeWhileEditing;
  myfield.keyboardType = UIKeyboardTypeDefault;
  myfield.autocorrectionType= UITextAutocorrectionTypeNo;
  myfield.autocapitalizationType=UITextAutocapitalizationTypeNone;
  myfield.returnKeyType=UIReturnKeyDone;

  [self.  addSubview:myfield];
 }


    return cell;

}

我寫了上面的代碼來顯示UITableViewCell中的文本框(最多八個單元格),但是文本框只顯示在第一個單元格中,上面的代碼有什么問題嗎?

問題是這一行:

[self.addSubview:myfield];

更改為:

[cell.contentView addSubview: myfield];
[myfield release];

但是,我同意BjörnMarschollek的設計觀點,因此此方法應如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
 static NSString *CellIdentifierWithTextBox = @"CellWithTextBox";
 static NSString *CellIdentifierOther = @"CellOther";

 UITableViewCell *cell;
 if(indexPath.row < 8)
 {
    cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifierWithTextBox];
    if (cell == nil) {
      cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifierWithTextBox] autorelease];
      CGRect textRect = CGRectMake(10, 10, 300, 31);
      UITextField *myfield = [[UITextField alloc]initWithFrame:textRect];
      myfield.borderStyle = UITextBorderStyleRoundedRect;
      myfield.font = [UIFont systemFontOfSize:22.0];
      myfield.adjustsFontSizeToFitWidth = YES;
      myfield.minimumFontSize = 2.0;

      myfield.clearButtonMode = UITextFieldViewModeWhileEditing;
      myfield.keyboardType = UIKeyboardTypeDefault;
      myfield.autocorrectionType= UITextAutocorrectionTypeNo;
      myfield.autocapitalizationType=UITextAutocapitalizationTypeNone;
      myfield.returnKeyType=UIReturnKeyDone;

     [cell.contentView addSubview: myfield];
     [myfield release];
   }
 }
 else
 {
     cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifierOther];
     if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifierOther] autorelease];
     }
 }
 return cell;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM