我正在使用这样的代码
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tv {
return 3;
}
- (NSInteger)tableView:(UITableView *)tv numberOfRowsInSection:(NSInteger)section {
if(section==2)
return 20;
else
return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *MyIdentifier = @"MyIdentifier";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:MyIdentifier];
//if (cell == nil)
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"MyIdentifier"]autorelease];
// Configure the cell
switch (indexPath.section) {
case 0:
{
textField=[[[UITextField alloc]initWithFrame:CGRectMake(5, 10, 290, 70)]autorelease];
textField.delegate=self;
textField.keyboardType=UIKeyboardTypeURL;
textField.autocorrectionType=YES;
textField.textColor=[UIColor blackColor];
textField.placeholder=@"Enter feed url";
[cell.contentView addSubview:textField];
break;
}
case 1:
{
textField1=[[[UITextField alloc]initWithFrame:CGRectMake(5, 10, 290, 70)]autorelease];
textField1.delegate=self;
textField1.keyboardType=UIKeyboardTypeURL;
textField1.textColor=[UIColor blackColor];
textField1.autocorrectionType=YES;
textField1.placeholder=@"Enter starting url";
[cell.contentView addSubview:textField1];
break;
}
case 2:
{
cell.text=[[PopeularSiteArray objectAtIndex:indexPath.row]objectForKey:@"Title"];
break;
}
default :
break;
}
return cell;
}
当我滚动我的tableview时,textfield应该在每次调用委托函数时分配...我改变了那个代码,就像textfield什么时候只会创建它但是那个时候它会在textfield中显示垃圾值。
我可以在这里使用什么?
答案 0 :(得分:0)
你应该始终对你添加到UITableView单元格的控件有一个参考:UITextFiled,UISwitch等。通过这种方式,你可以与控件交互以及更容易地获取/设置值。否则,您必须使用cellForRowAtIndexPath找到正确的单元格并尝试获取子控件。
解决您的问题:
if (textFieldFeedURL != nil) {
textFieldFeedURL = [[UITextField alloc] initWithFrame:CGRectMake(5, 10, 290, 70)];
}
如果你的app有几十个控件,你可以在NSMutableArray中保留一个引用。
我希望我能理解你的问题。祝你好运!