如何使用可更改的標籤在Interface Builder中製作可重複使用的TableViewCell?可重複使用Interface Builder中的TableViewCell與可變標籤?
這甚至可能嗎?從我所瞭解的蘋果最近在界面生成器中給自定義的TableViewCell一些愛,所以這應該是可能的?
Ps。我知道在IB中有很多關於TableViewCell的問題,但我找不到任何使標籤生效的人。
如何使用可更改的標籤在Interface Builder中製作可重複使用的TableViewCell?可重複使用Interface Builder中的TableViewCell與可變標籤?
這甚至可能嗎?從我所瞭解的蘋果最近在界面生成器中給自定義的TableViewCell一些愛,所以這應該是可能的?
Ps。我知道在IB中有很多關於TableViewCell的問題,但我找不到任何使標籤生效的人。
您可以更改正在重用的單元格中的任何內容。要自定義您在IB中創建的標籤,您應該在自己的IB中設置其標籤&使用相同的標籤獲取標籤。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
MyCell* cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil)
{
cell = [[[MyCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell.
//Do anything here with the labels. Even add or remove them.
(UILabel*) label1 = (UILabel*)[cell viewWithTag:1];
return cell;
}
HTH,
阿克沙伊
我用來做什麼的,他的方式爲接受的答案相同,但像我使用「去」的帕斯卡爾使用標籤我一直認爲。感覺髒。但也許這只是我,標籤工作得很好。
雖然有另一種方法。子類UITableViewCell,創建一個IBOutlet屬性,連接IB,並引用cellForRowAtIndexPath:
代碼中的屬性。像這樣:
interface MyCustomCell : UITableViewCell
@property (nonatomic, weak) IBOutlet UILabel *myAwesomeLabel;
@end
不要忘了在IB中將單元的類設置爲MyCustomCell。
之後,你可以在IB連接你的財產直接像這樣
而在你的表視圖數據源,現在你可以訪問此屬性
#import "MyCustomCell.h"
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MyCustomCell *cell = (MyCustomCell *)[tableView dequeueReusableCellWithIdentifier:@"MyCell"];
if (cell) {
cell.myAwesomeLabel.text = @"Hello, World!";
}
return cell;
}
使用標籤很容易出錯,如果你使用很多標籤,可能會很快變成一團糟。
不,我的意思是如果我在IB中創建自定義單元格..我如何得到我放在那裏的標籤的引用。 – DiscSeven
編輯我的答案。 – Akshay
太棒了!正是我想要做的。謝謝! – DiscSeven