【发布时间】:2015-09-18 10:32:42
【问题描述】:
我正在尝试获取 nib 文件中的 UIImageView 宽度以使其变为圆形,但我得到了错误的值
这是我的代码:
- (void)viewDidLoad {
[super viewDidLoad];
//....
UINib *cellNib = [UINib nibWithNibName:@"User_Row" bundle:nil];
[_Menu_Table registerNib:cellNib forCellReuseIdentifier:@"user_row"];
}
在表格视图中:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
User_Row *user_row = [tableView dequeueReusableCellWithIdentifier:@"user_row"];
if (user_row == nil){
NSArray *nibs = [[NSBundle mainBundle] loadNibNamed:@"User_Row" owner:self options:nil];
user_row = (User_Row *)[nibs objectAtIndex:0];
}
[user_row.user_image layoutIfNeeded];
user_row.user_image.layer.borderWidth = 3;
user_row.user_image.layer.borderColor = [UIColor colorWithRed:40/255 green:62/255 blue:38/255 alpha:1].CGColor;
CALayer *cellImageLayer = user_row.user_image.layer;
NSLog(@"width is %f", user_row.user_image.frame.size.width);
[cellImageLayer setCornerRadius:user_row.user_image.frame.size.width/2];
[cellImageLayer setMasksToBounds:YES];
return user_row;
}
【问题讨论】:
-
您实际看到了什么? “错误的价值”不是很有帮助
-
我想要设备中显示的大小,我认为它给了我 nib 文件中的大小,
[user_row.user_image layoutIfNeeded];前后的值不同
标签: ios uitableview frame calayer uinib