2013-12-09 150 views
-1

我有一个UITextView与一个UILabel和UITextView的单元格。我试图设置textview的宽度和高度。我在heightForRowAtIndexPath中这样做,但我的UITextView设置为在故事生成器中自动调整宽度。当heightForRowAtIndexPath被调用时,我发现我的UITextView的宽度是在界面构建器中设置的值,而不是“重新调整大小”的宽度。UITextView在高度设置宽度和高度ForRowAtIndexPath

那么,如何在自动调整尺寸后获得新的尺寸?我的UITextVies在IB中设置为280,但是当我在iPad上显示它时,单元格宽度大于280,但在heightForRowAtIndexPath中我仍然获得280.

任何人都可以告诉我hw在autosize之后得到正确的宽度。

UPDATE:

为了澄清,我想设置高度为UITextView的小区。我正在调用boundingRectWithSize,并且传递了CGFloatMax的高度,但我需要将宽度设置为UITextView上的'new autosized'宽度。我正试图弄清楚如何得到这个。

UPDATE:

这里是我的自动调整大小的屏幕截图。我有UILabel和UITextView设置相同的方式,宽度设置为增长。

enter image description here

感谢所有帮助

+0

您确定您的单元格宽度设置为方法heightForRowAtIndexPath中设置的值吗?因为此函数在单元格创建之前返回高度。 –

+0

in heightForRowAtIndexPath如果我得到UITextView并检查它的高度和宽度,它们是在IB中设置的值。 – LilMoke

+0

我再次说这个函数在单元格被创建之前返回高度。 –

回答

0

heightForRowAtIndexPath它是UITableView的委托方法,它定义了一个UITableViewCell高度。如果您已经使用UITableView.rowHeight方法或在Storyboard中设置了行高,并且您的行具有静态高度,则不需要实施它。

假设你UITextView包含在UITableView(否则,行高和TextView的高度是相关),请确保autoresizingMask是正确的。

+0

我的高度是动态的。文本在每个单元格中都不相同,所以我需要计算heightForRowAtIndexPath中每个单元格的高度。 – LilMoke

+0

你能分享一些代码吗?如果单元格高度正确,问题出在autoresizingMask上。如果单元高度不正确,则问题可能与高度计算有关。 – redent84

+0

我可以发布一些代码,但我的身高计算是正确的,但我需要提供一个宽度的boundingRectWithSize调用,我不知道“新”的当前宽度。这是我的问题。 – LilMoke

0

尝试:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 

     NSDictionary *attributes = @{NSFontAttributeName: [UIFont systemFontOfSize:17.0]}; 
     CGRect rect = [self.textview.text boundingRectWithSize:CGSizeMake(textview_width, max_height) 
               options:NSStringDrawingUsesLineFragmentOrigin 
               attributes:attributes 
               context:nil]; 
return rect.size.height; 
} 
+0

大声笑,这正是我想要做的,但是,我不知道如何获得自动宽度。 – LilMoke

-1

我这样做是另一种方式,因为没有人能够提供一个贝斯特的解决方案。我得到了屏幕宽度并重新计算了我的UITextView的位置。我还必须删除UITextView的自动设置。

+0

在截图中,正如我们许多人所建议的那样,自动调整掩码不正确。但你只是'想出'如何解决它,因为没有人能够提供'bester'解决方案...... *叹息* – redent84

+0

嗯,我尝试改变自动调整的面具,但它似乎没有任何影响我在heightForRowAtIndexPath方法中获取大小。看过谷歌和其他堆栈溢出帖子后,我得出的结论是,也许我问了一个愚蠢的问题,因为没有任何示例或帖子在单元格视图中提供了UITextView或UILabel动态文本高度计算的宽度。 – LilMoke