2015-01-09 48 views
-1

我在表格單元中有一個UIButton。我想將按鈕放在單元格的中心。該按鈕的文本是動態的。這是我所嘗試過的,但它不在中心。它正在走向中心的權利。將UIButton與動態tex放在UITableViewCell的中心

UIButton *btnName = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 

CGSize maximumLabelSize = CGSizeMake(self.frame.size.width, MAXFLOAT); 
NSStringDrawingOptions options = NSStringDrawingTruncatesLastVisibleLine | 
NSStringDrawingUsesLineFragmentOrigin; 

NSDictionary *attr = @{NSFontAttributeName: [UIFont systemFontOfSize:15]}; 
CGRect labelBounds = [titleText boundingRectWithSize:maximumLabelSize 
              options:options 
              attributes:attr 
              context:nil]; 
CGFloat width = ceilf(labelBounds.size.width); 

btnName.frame = CGRectMake(0.0, imgPic.frame.origin.y+imgPic.frame.size.height+20.0, width, 20.0); 
btnName.center = CGPointMake(cell.contentView.center.x, imgPic.frame.origin.y+imgPic.frame.size.height+10.0); 

[btnName setTitle:titleText forState:UIControlStateNormal]; 
[btnName setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal]; 
[cell.contentView addSubview:btnName]; 
+0

你嘗試過'btnName.center = cell.contentView.center'嗎?您可能還想在設置按鈕標題後進行居中。 – Zhang

+0

@張:是的,我試過這個,但沒有工作。 – Nitish

+0

@WorldOfWarcraft:我是否也需要設置中心和框架。如果你可以發佈你的答案,這將有所幫助。 – Nitish

回答

0

Vladimir's答案救了我的一天。我使用setAutoresizingMask,現在它已經非常好了。

0

您的代碼看起來不錯,只是你已經做出這些改變,

  1. 你應該中間的按鈕在添加之後細胞,並

  2. 更正中心點


[cell.contentView addSubview:btnName]; 

btnName.center = CGPointMake(cell.frame.size.width/2.f, btnName.center.y); 
2

只需在代碼中添加以下行即可。

btnName.center = cell.center;