我有一個UITableView
。在每個單元格中,我都有一個UITextView
,長度可變。 我希望UITextView
可以擴展以適合所有文本。使UITextView展開並向下移動其他對象
[UITextView sizeToFit];
不起作用。 此外,我需要將其展開向下移動到單元格中的其他標籤和對象(當然,單元格的高度必須改變)。 我該怎麼做?
我有一個UITableView
。在每個單元格中,我都有一個UITextView
,長度可變。 我希望UITextView
可以擴展以適合所有文本。使UITextView展開並向下移動其他對象
[UITextView sizeToFit];
不起作用。 此外,我需要將其展開向下移動到單元格中的其他標籤和對象(當然,單元格的高度必須改變)。 我該怎麼做?
您需要根據UITextView的
這裏的幀更新每個視圖的框架是林想說的,它只是一個樣本,你不得不修改的所有未來的看法
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"tblCell"];
UITextView *txt = [cell viewWithTag:1];
txt.text =[arr objectAtIndex:indexPath.row];
[txt sizeToFit];
CGRect frame = txt.frame;
CGRect frame2;
UILabel *lbl = [cell viewWithTag:2];
frame2 = lbl.frame;
if(frame.size.width + frame2.size.width >= cell.frame.size.width){
frame2.origin.x = 0;
frame2.origin.y += frame.size.height;
[lbl setFrame:frame2];
}
else{
frame2.origin.x = frame.size .width;
[lbl setFrame:frame2];
}
return cell;
}
第一幀大家要聲明的委託方法heightForRowAtIndexPath:
,然後使用此代碼
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGFloat rowHeight;
NSString *text1 = [arrTemp objectAtIndex:indexPath.row]; //your text
CGRect frame = [text1 boundingRectWithSize:CGSizeMake(160, CGFLOAT_MAX)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:[UIFont fontWithName:@"Helvetica" size:12]}
context:nil]; // here get the height of ur textline
CGSize size = CGSizeMake(frame.size.width, frame.size.height+1);
rowHeight=size.height*2;
return rowHeight;
}
希望這段代碼對你很有幫助,你可以很容易地實現它。
它爲我工作。感謝@ilesh – g212gs