自定义 tableviewcell 中的文本字段在滚动时超出单元格
Textfields in custom tableviewcell goes out of cell while scrolling
我正在开发一个应用程序,我在 XIB 上使用带有自定义 tableviewcell 的 UITableview。
我的问题是,我通过 xib 将文本字段放在 tableviewcell 上。我在我的 viewcontroller class 中访问这个自定义单元格,它有一个 table 视图。下面是我的 cellForRowAtIndexPath:
方法代码。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *STI=@"STII";
AnalysedScreenCell *cell = (AnalysedScreenCell *)[tableView dequeueReusableCellWithIdentifier:STI];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"AnalysedScreenCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
cell.accessoryType=UITableViewCellAccessoryNone;
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.txtDetails.delegate=self;
cell.txtDetails.text = [countArray objectAtIndex:indexPath.row];
[cell.txtDetails setTag:1];
[cell.txtDetails addTarget:self action:@selector(textFieldDidChange:) forControlEvents: UIControlEventEditingChanged];
cell.txtName.delegate=self;
cell.txtName.text = [nameArray objectAtIndex:indexPath.row];
[cell.txtName setTag:2];
[cell.txtName addTarget:self action:@selector(textFieldDidChange:) forControlEvents: UIControlEventEditingChanged];
cell.txtDate.delegate=self;
cell.txtDate.text = [dateArray objectAtIndex:indexPath.row];
[cell.txtDate setTag:3];
[cell.txtDate addTarget:self action:@selector(textFieldDidChange:) forControlEvents: UIControlEventEditingChanged];
return cell;
}
但是当我尝试滚动 table 视图时,table 视图中的文本字段进入另一个单元格。我也尝试为它设置一个可重用的标识符,但它不起作用。
这是我的问题的图片
在您的 class >
中添加此委托方法
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 100; // change as per your needs
}
问题可能是
您已将 table 视图单元格的高度设置得较小,因此文本字段的高度不适合它。
因此请提供 table 视图单元格的高度,以便它包含文本字段的高度。
例如:
假设您的 textField 高度为 40,您的上边距和下边距分别为 10 和 10。
所以请提供60或60以上的身高。
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 60;
}
@KKRocks 所说的非常有效...
另一个选项是在 tableview 的属性中设置:
我正在开发一个应用程序,我在 XIB 上使用带有自定义 tableviewcell 的 UITableview。
我的问题是,我通过 xib 将文本字段放在 tableviewcell 上。我在我的 viewcontroller class 中访问这个自定义单元格,它有一个 table 视图。下面是我的 cellForRowAtIndexPath:
方法代码。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *STI=@"STII";
AnalysedScreenCell *cell = (AnalysedScreenCell *)[tableView dequeueReusableCellWithIdentifier:STI];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"AnalysedScreenCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
cell.accessoryType=UITableViewCellAccessoryNone;
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.txtDetails.delegate=self;
cell.txtDetails.text = [countArray objectAtIndex:indexPath.row];
[cell.txtDetails setTag:1];
[cell.txtDetails addTarget:self action:@selector(textFieldDidChange:) forControlEvents: UIControlEventEditingChanged];
cell.txtName.delegate=self;
cell.txtName.text = [nameArray objectAtIndex:indexPath.row];
[cell.txtName setTag:2];
[cell.txtName addTarget:self action:@selector(textFieldDidChange:) forControlEvents: UIControlEventEditingChanged];
cell.txtDate.delegate=self;
cell.txtDate.text = [dateArray objectAtIndex:indexPath.row];
[cell.txtDate setTag:3];
[cell.txtDate addTarget:self action:@selector(textFieldDidChange:) forControlEvents: UIControlEventEditingChanged];
return cell;
}
但是当我尝试滚动 table 视图时,table 视图中的文本字段进入另一个单元格。我也尝试为它设置一个可重用的标识符,但它不起作用。
这是我的问题的图片
在您的 class >
中添加此委托方法-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 100; // change as per your needs
}
问题可能是
您已将 table 视图单元格的高度设置得较小,因此文本字段的高度不适合它。
因此请提供 table 视图单元格的高度,以便它包含文本字段的高度。
例如:
假设您的 textField 高度为 40,您的上边距和下边距分别为 10 和 10。
所以请提供60或60以上的身高。
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 60;
}
@KKRocks 所说的非常有效...
另一个选项是在 tableview 的属性中设置: