0
我有兩個UILabels自定義UITableViewCell(.h,.m和.xib文件)。我正在更改UILabels的內容並希望相應地更改其職位。當我在代碼中改變位置後執行NSLogs時,它似乎正在工作,但UILabel的屏幕框架保持不變。我究竟做錯了什麼?UILabel在自定義UITableViewCell中的位置
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifierTwo = @"Cell with labels";
CellWithTwoLabels *cell = (CellWithTwoLabels *)[tableView dequeueReusableCellWithIdentifier:cellIdentifierTwo];
if (cell == nil) {
NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"CellWithTwoLabels" owner:nil options:nil];
for (UIView *view in views) {
if ([view isKindOfClass:[UITableViewCell class]]) {
cell = (CellWithTwoLabels *)view;
}
}
}
// First UILabel
cell.nameOfDataLabel.text = @"Region";
// Second UILabel
cell.valueOfDataLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:15.0];
// Content of second UILabel
if (self.region) {
cell.valueOfDataLabel.text = self.region;
}
else {
cell.valueOfDataLabel.text = @"Placeholder text";
}
// Setting the frame of second UILabel
CGSize newSize = [cell.valueOfDataLabel.text sizeWithFont:[UIFont fontWithName:[NSString stringWithFormat:@"%@", cell.valueOfDataLabel.font.fontName] size:cell.valueOfDataLabel.font.pointSize]];
// Assign new size
CGRect textFrame = cell.valueOfDataLabel.frame;
textFrame.size = newSize;
textFrame.origin.x = cell.frame.size.width - textFrame.size.width - 20;
cell.valueOfDataLabel.frame = textFrame;
}
的可能重複的[與的UITableView動態小區的高度] (http://stackoverflow.com/questions/3163412/uitableview-with-dynamic-cell-heights) – 2013-05-01 11:12:30
我試過你的代碼,它運作良好,你確定你有你的網點連接正確或如果有任何其他重置標籤位置的代碼? – 2013-05-01 11:43:53
好的,解決方案是勾選單元的.xib文件中的「使用Autolayout」選項......這解決了我的問題。 – user1165156 2013-05-02 10:30:16