2013-03-16 60 views
0

所有我喜歡做是創建一個UITableViewCell與具有兩個元件只有這樣的佈局:如何創建這樣的表格單元佈局?

"Text that can have a flexible length 
with mutliple lines..." 
"one fix line directly follwing the above text" 

所以基本上 1.具有可變長度靈活的文本字段,其中完整的文本具有待觀察纏繞在必要時 2.一條線直接下

雖然我發現heightForRowAtIndexPath它仍然沒有幫助怎麼辦在這裏第二場的佈局...多行

-(void) layoutSubviews { 
    [super layoutSubviews]; 
    [flexibleText setFrame:CGRectMake( 5.0, 5.0, 250.0, 40.0)]; //<- fexible height 
     [one_line setFrame:CGRectMake( 5.0, 42.0, 250.0, 20.0)]; //<- followed by this one liner 
} 

回答

1

您必須繼承UITableViewCell的子類,然後在佈局中計算第一個標籤需要的大小。請查看What is -[NSString sizeWithFont:forWidth:lineBreakMode:] good for?瞭解如何使用-[NSString sizeWithFont:constrainedToSize:lineBreakMode:]

然後根據第一個標籤重新定位第二個標籤的框架。

然後,您可以創建一個方法,該方法將返回單元格所需的高度並在heightForCell方法中調用該高度。

+0

非常感謝您的提示。但是,所有這些的必要邏輯實際上是荒謬的:首先,表格要求每個單元的所有高度,然後開始構建每個單元格,在佈局之後,我應該知道單元格的完整高度。要實際計算單元格的高度,必須先計算所需文本的高度,然後才能進行佈局。但是,再一次,非常感謝你的提示,這似乎是唯一的出路。順便說一句,Android是一個聲明:WRAP-CONTENT :-) – user387184 2013-03-16 19:06:14