當我嘗試設置在Storyboard中設置的單元格中的標籤高度時,它可以工作,但是當我嘗試設置具有它自己的.xib文件的標籤高度時,它不起作用。如何設置UITableViewcell內部的標籤高度?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"MainArticleCell";
MainArticleCell *cell = (MainArticleCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell.mainArticleTitleLabel.frame = CGRectMake(0, 0, 320, 30); // NOT WORKING
...
我連接到標籤成功,因爲我嘗試添加文本的作品。
cell.mainArticleTitleLabel.text = @"lorem ipsum text";
問題在哪裏?
UPDATE(改進解釋):
當我檢查之前設置高度是一樣被設置在IB和代碼塞汀後就像是我設置,但在visualy模擬器是一樣的。
NSLog(@"%f", cell.mainArticleTitleLabel.frame.size.height);
cell.mainArticleTitleLabel.frame = CGRectMake(0, 117, 320, 48);
NSLog(@"%f", cell.mainArticleTitleLabel.frame.size.height);
更新2
我甚至可以改變backogrund顏色(但塞汀高度不)
cell.mainArticleTitleLabel.backgroundColor = [UIColor redColor];
cell.mainArticleTitleLabel.frame = CGRectMake(0, 117, 320, 48); // NOT WORKING
你在做什麼在heightForRowAtIndexPath? – rishi
@rishi - - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 166.0; } – CroiOS
這是足夠的高度來適應您的標籤,你需要動態的,這將解決問題。你應該通過調用 - [NSString sizeWithFont:forWidth:lineBreakMode:]來計算你的-tableView:heightForRowAtIndexPath:方法的行高, – rishi