在我的UITableView
中,所有單元格的高度不同。他們都有一個背景圖片,這是一張泡泡圖片。所有細胞的TextLabels
需求是不同的寬度一樣,所以我子類UITableViewCell
,並給予其兩個屬性:無法調整UIImageView的框架在具有動態高度的子類UITableViewCell中
@property (strong, nonatomic) UILabel* messageTextLabel;
@property (strong, nonatomic) UIImageView* bubbleImageView;
我有我的自定義UITableViewCell
的initWithStyle設置像這樣:
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
//stretchable bubble image
UIImage *rawBackground = [UIImage imageNamed:@"text_bubble"];
UIImage *background = [rawBackground stretchableImageWithLeftCapWidth:13 topCapHeight:22];
_bubbleImageView = [[UIImageView alloc] initWithImage:background];
//textlabel
_messageTextLabel = [[UILabel alloc] init];
[_messageTextLabel setFont:[UIFont systemFontOfSize:14.0f]];
[_messageTextLabel setNumberOfLines:0];
[_messageTextLabel setBackgroundColor:[UIColor clearColor]];
[_messageTextLabel setTextColor:[UIColor blackColor]];
[self.contentView addSubview:_bubbleImageView];
[self.contentView addSubview:_messageTextLabel];
}
return self;
}
在我的TableView的cellForRowAtIndexPath
,我已經嘗試過,只是ALLOC一個UIImageView
存在,並且設置爲單元的框架,並且該作品,但是當我向上和向下滾動,然後在屏幕獲取與UIImageViews
正在重新alloced了混亂並結束。我試過了if(cell == nil)技術,但是這隻會讓我的整個UITableView
變成空白。所以,這就是我現在所擁有的:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
Cell *cell = (Cell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
//works just fine
[cell.messageTextLabel setFrame:CGRectMake(15, 0, 245, cell.frame.size.height -10)];
//this doesn't work at all
[cell.bubbleImageView setFrame:CGRectMake(10, 0, cell.frame.size.width, cell.frame.size.height)];
[cell.messageTextLabel setText:[self.randomData objectAtIndex:indexPath.item]];
return cell;
}
所以我UITableView
結束運行時(電池選擇,所以你可以看到幀)看起來像這樣:
注意,我可以在我的UITableViewCell
子類中設置bubbleImageView
的框架,但我不知道單元格的高度將會如何。我更加困惑的是,我可以設置我的messageTextLabel
的框架,而不是我的bubbleImageViews。我可能會做一些非常基本的錯誤,但這是一個簡單的問題,但由於某種原因,我正在被絆倒。
謝謝!
我有你的問題的答案,但我需要回答幾個問題。你在使用xibs還是原型單元? –
我正在使用一個UIViewController的故事板,其中我在viewDidLoad – JMarsh
中以編程方式實例化UITableView因此,沒有原型單元格,因爲這是在故事板中具有tableview的功能。下一個問題,標籤很重要嗎?這看起來像一個文本視圖將更適合您如何顯示文本。 –