0

I have a uitableview with uitableviewcells however some of my text is so long its going right to the edge of the cell, where my accessory tick view is going to be when selected..

I am currently wrapping the text if it extends beyond the width and it goes onto the second line.. However I was hoping there is a nice way to restrict the width of this UITableViewCell label.

4

4 回答 4

1

cellForRowAtIndexPath设置宽度textLabel

cell.textLabel.frame = CGRectMake(cell.textLabel.frame.origin.x, cell.textLabel.frame.origin.y, 280, cell.textLabel.frame.size.height);

就这样。

于 2012-08-23T05:42:22.853 回答
1

在你的 cellForRowAtIndexPath: 函数中。第一次创建单元格时:

 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
 if (cell == nil)
 {
   cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
   cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
   cell.textLabel.numberOfLines = 0;
   cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:17.0];
 }   

现在指定你的 UITableViewCell 有多大,所以在你的 heightForRowAtIndexPath 函数中这样做:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
  NSString *str = [[arrTexts objectAtIndex:indexPath.row]; // filling text in label  
  CGSize maximumSize = CGSizeMake(300, 100); // change width and height to your requirement
 CGSize strSize = [str sizeWithFont:[UIFont fontWithName:@"Helvetica" size:17] constrainedToSize:maximumSize lineBreakMode:UILineBreakModeWordWrap] //dynamic height of string depending on given width to fit

 return (10+strSize.height+10) // caculate on your bases as u have string height
}
于 2012-08-23T05:38:10.840 回答
0

我认为您需要子类UITableViewCell来覆盖-layoutSubviews... call super,然后适当地构建您的标签。约束我会有所帮助,但我还没有在 iOS 上使用它们。(假设问题是内置布局功能使标签尽可能宽以容纳您的文本)

于 2012-08-23T05:27:53.113 回答
0

有两种方法可以做到这一点。

1)创建一个自定义的 UITableViewCell 类,添加你的 UILabels 任何你想要的位置和大小。然后在 cellForRowAtIndexPath 方法中使用它。

2)否则,不要使用 UITableViewCell 的默认 UILabel 即。textLabel 和 detailTextLabel,在单元格中添加您自己的 UILabel,无论您想要什么位置和大小。

于 2012-08-23T05:28:15.647 回答