2013-05-17 86 views
2

我希望有一個標籤的表格,然後在標籤後面添加一個文本字段UI。 我希望標籤具有某種固定大小(比如150),其餘的單元格寬度將被文本字段佔用。表格單元格TextLabel的框架寬度自動增加

因此,我以這種方式

[cell.textLabel setFrame:CGRectMake(cell.textLabel.frame.origin.x, cell.textLabel.frame.origin.y, 150, cell.textLabel.frame.size.height)]; 

設置我cell.textLabel的框架功能

的cellForRowAtIndexPath

,但這似乎沒有工作。

任何想法爲什麼和什麼可以是我的解決方案呢?

回答

3

你爲什麼不上你的添加自定義拉布勒...

UILabel *mylabel = [[UILabel alloc] initWithFrame:CGRectMake(5,5, 150, 40)]; 
[cell.contentView addSubview:mylabel]; 

否則,你需要重寫 - LayoutSubViews方法和類繼承UITableViewCell ..

1

隨着UITableViewCell其負責列出其子視圖。使用UITableViewCellStyle枚舉可以非常高級地控制其佈局。

如果您想要自定義某些內容,請覆蓋UITableViewCell並將視圖添加到其內容視圖或修改現有視圖。當您這樣做時,請確保在layoutSubviews方法中執行佈局,例如

- (void)layoutSubviews 
{ 
    [super layoutSubviews]; 
    self.textLabel.frame = CGRectMake(self.textLabel.frame.origin.x, 
             self.textLabel.frame.origin.y, 
             150, 
             self.textLabel.frame.size.height); 
} 

當它添加到UITableView中時,單元格的框架將發生變化。當單元格的框架發生變化時,layoutSubviews被調用,讓你有機會調整它的子視圖。默認情況下,UITableViewCell會做一些自己的調整,這可能是你的問題。

相關問題