在自定义UICell中获取UIImage的帧使用autolayout在iOS8.3中

时间:2015-05-20 03:13:51

标签: ios objective-c uiimage autolayout

我在自定义UICell中有一个UIImage。 我想在定制Cell& amp;时获得UIImage的框架。 UIImage确实创造了。

#import "SliderSignInCell.h"
@implementation SliderSignInCell

- (void)layoutSubviews {
  NSLog(@"%@",NSStringFromCGRect(self.userImage.frame));
  //    self.userImage.layer.borderWidth = 3.0f;
  //    self.userImage.layer.borderColor = [UIColor blackColor].CGColor;
}

在iOS8.2中,布局完成后,我可以在layoutSubviews中获取帧。 (layoutSubviews运行2次)

但是相同的代码......

在iOS8.3中,我无法在layoutSubviews中获得框架 (layoutSubviews运行1次,当查看init时)

日志:

在iOS8.2中

  

2015-05-20 10:51:20.198 EarlyBee [11989:1914472] {{0,0},{240,128}}。

     

2015-05-20 10:51:20.198 EarlyBee [11989:1914472] {{0,0},{70,70}}

在iOS8.3中

  

2015-05-20 10:51:20.198 EarlyBee [11989:1914472] {{0,0},{240,128}}

2 个答案:

答案 0 :(得分:1)

除了一个问题之外看不到任何错误:在[super layoutSubviews]中执行任何其他操作之前,您需要致电-layoutSubviews

- (void)layoutSubviews
{
  [super layoutSubviews];
  ...
}

答案 1 :(得分:0)

-(void)drawRect:(CGRect)rect{
      NSLog(@"%@",NSStringFromCGRect(self.userImage.frame));
      self.userImage.layer.cornerRadius = self.userImage.frame.size.width / 2;
      self.userImage.clipsToBounds = YES;
}

我的解决方案。