首页 > 其他 > 详细

cell重写layoutSubviews的问题

时间:2014-04-03 08:47:44      阅读:1030      评论:0      收藏:0      [点我收藏+]

layoutSubviews何时调用的问题,这个方法是当你需要在调整subview的大小的时候需要重写(我这个翻译不严谨,以下是原文:You should override this method only if the autoresizing behaviors of the subviews do not offer the behavior you want.),但有时候经常指望它被调用的时候没被调用,不希望它被调用的时候被调用了,搞的很上火。根据国外社区一个人帖子,做了总结性翻译。

layoutSubviews在以下情况下会被调用:

1、init初始化不会触发layoutSubviews
2、addSubview会触发layoutSubviews
3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
4、滚动一个UIScrollView会触发layoutSubviews
5、旋转Screen会触发父UIView上的layoutSubviews事件
6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件

在使用uitableViewCell时cell.imageView的大小是只读属性,不能改变大小 ,这时只能重写layoutSubviews方法,就能满足要求了。在之前写过一篇关于固定cell.imageView.image大小的文章,当时写的时候在xib里自定义cell时是不需要重写layoutSubviews方法的。现在在IOS7中这样来做不可以了,图片变小了,和之前有所变化。现在也需要重写layoutSubviews方法。

例子如下:

@interface MeCell : UITableViewCell

@property (retain, nonatomic) IBOutlet UIImageView *m_headImg;//头像

@property (retain, nonatomic) IBOutlet UILabel *m_labelText;//左侧文本

@property (retain, nonatomic) IBOutlet UILabel *m_labDetail;//详情

@end


@implementation MeCell

@synthesize m_headImg,m_labelText,m_labDetail;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier

{

    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];

    

    if (self) {

        

    }

    return self;

    

}

-(void)layoutSubviews

{

    self.imageView.frame =CGRectMake(0.0f, 3.0f, 37.0f, 37.0f);

}

-(void)dealloc

{

    [m_headImg release];

    [m_labelText release];

    [m_labDetail release];

    [super dealloc];

}


@end



cell重写layoutSubviews的问题,布布扣,bubuko.com

cell重写layoutSubviews的问题

原文:http://blog.csdn.net/quanqinyang/article/details/22827815

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!