有人可以總結有助於解決這個問題的關鍵Objective-C代碼片段。iPhone代碼爲auto uiLabel&uiTableViewCell字體改變時調整大小?
目標 - 在用戶更改字體大小後自動調整UITableView的大小。因此,如果用戶增加或減少字體,則(a)uiLabel高度應該改變以確保它們很好地包括文本,並且(b)uiTableViewCell高度也應該調整。
假設是:
- 的UITableView已通過 創建一個自定義單元格視圖的擴展 - 即在NIB創建一個新的觀點,即 形式爲 的UITableView單元格的內容視圖
- 每個定製 單元具有四個UILabel的形成UILabels的 2×2圖案 - 在底線上,即頂線2 和兩個
- 以便用戶增加字體 的 UILabels的水平間距將保持不變, 然而,標籤的高度會 變化
所以我想挑戰/問題,我將包括(並希望通過一些回答有人可以發帖的示例代碼)
- 可以這裏的出發點是在InterfaceBuilder中已經佈局的定製UITableViewCell嗎? (或者解決方案是否要求它完全以編程方式構建)?
- 如何計算標籤的高度?這只是與NSString方法「sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:」,我需要添加邊距等?
- 如何編程,以增加標籤的高度動態的 - 在這種方法你做到這一點&如何改變高度本身
- 如何保證時的UILabel在頂部展開&的增長,它會自動推下第二排的UILabel?這是默認情況下發生的還是有一個特定的屬性/設置你必須確保這個hapen。
- 如何在發生上述情況後自動增加TableViewcell的高度。使用哪種方法來執行此操作,以及如何以編程方式執行增加重繪操作。
希望這是有道理的。
感謝
謝謝內文 - 我可以澄清:RE項目3:所以只需調整現有標籤上的高度是否正確?即不需要創建一個新的替代幀?RE項目4:換句話說,在一個幀中佈局UILabel沒有簡單的方法嗎?像佈局管理器類型的自動堆棧方法?注意事項5:「cellForRowAtIndexPath」和「heightForRowAtIndexPath」呼叫會一起排隊嗎?即不會得到一個發生,而不是另一個希望?前者可能會觸發後者嗎? – Greg 2011-03-07 06:24:35
3.我通常做的是從標籤中獲取框架,調整它並將調整後的框架分配回標籤。 4.我不知道沒有僱用第三方庫(如果有的話)。沒關係 – Nevin 2011-03-07 07:28:41