0

I am trying to get UIImageView width that's in a nib file to make it circle but I am getting wrong value

Here is my code :

- (void)viewDidLoad {
[super viewDidLoad];
   //....
   UINib *cellNib = [UINib nibWithNibName:@"User_Row" bundle:nil];
   [_Menu_Table registerNib:cellNib forCellReuseIdentifier:@"user_row"];

}

In tableview :

- (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;
}
mmrayyan
  • 53
  • 1
  • 5
  • What are you actually seeing? "wrong value" isn't very helpful – jrturton Sep 18 '15 at 11:14
  • I want the size that is shown in the device I think it gives me the size in the nib file and the value is different before and after `[user_row.user_image layoutIfNeeded];` – mmrayyan Sep 18 '15 at 11:31

2 Answers2

0
int imgHeight =  imageView.layer.frame.size.height;
int imgWidth = imageView.layer.frame.size.width;
NSLog(@"height of image %i",imgHeight);
NSLog(@"widht of image %i",imgWidth);
sandeep
  • 25
  • 1
  • 9
0

It was solved by replacing :

[user_row.user_image layoutIfNeeded];

with

user_row.frame = CGRectMake(0, 0, self.view.frame.size.width, row_height);
[user_row layoutIfNeeded];

But I want an explanation

mmrayyan
  • 53
  • 1
  • 5