如何垂直对齐UITextView中的文本?

时间:2012-04-13 10:22:34

标签: iphone objective-c xcode ios5 uitextview

我有一个自定义单元格,其中包含UITextView。我加载到此UITextView的文本长度从非常短变为非常长。所以请不要说使用标签代替”。我希望将单元格保持在相同的高度,但如果文本太长,则使用UITextView的垂直滚动。

我尝试了here方法,但由于我在cellForRowAtIndexPath事件中使用自定义单元格初始化,因此观察者无效。我在initWithStyle函数下的单元格类中尝试了相同的方法,但也没有用。

你还有什么建议?或者我应该以不同的方式使用此功能?任何帮助表示赞赏。

提前致谢。

3 个答案:

答案 0 :(得分:2)

使用此 -

CGSize textSize = [myText sizeWithFont:whateverFont constrainedToSize:myTextViewBox.frame.size lineBreakMode:UILineBreakModeWordWrap];

...然后找出contentOffset并在将UITextView添加到表格时进行设置。

答案 1 :(得分:1)

在TableView dataSource中 -

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    NSUInteger row = [indexPath row];

    static NSString *CellIdentifier = @"myCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    } else { // if there is already a subview, remove it
        while ([[cell.contentView subviews] count] > 0) {
            UIView *labelToClear = [[cell.contentView subviews] objectAtIndex:0];
            [labelToClear removeFromSuperview];
        }
    }


    UITextView *myTextView = // initialise your textView here, including setting its contentOffset

    [cell.contentView addSubview:myTextView];

    return cell;

}

答案 2 :(得分:1)

Here's a gist我做了如何垂直对齐UITextView