标签:
// ---------------------- 功能分区 -----------------------------
// 到这步,想要实现在自定义的每个tablecell上添加一个toolbar的view,上面放着三个lable(点赞,评论,转发的数量),所以要再自定义一个view类
// 自定义的 LYWeiboToolbarView 在xib里右侧功能区点击第一个图标把Use Autolayout自动布局点空取消,之后在尺寸的一栏给距离俯视图的下边缘加约束,距离为0.(实现toolbar跟随cell的高度变换位置,始终在下边缘)
//cell上添加工具栏
// 创建自定义通过xib布局的对象,用下面的方法创建
LYWeiboToolbarView *tv = [[[NSBundlemainBundle]loadNibNamed:@"LYWeiboToolbarView" owner:self options:nil] lastObject];
// autoreseing布局,只是实现子控件的每次初始位置,这里给设置向下移5个像素
tv.center = CGPointMake(tv.center.x, tv.center.y+5);
//在这里要把LYWeibo数据传递给子控件tv,tv拿到后要显示转发,评论,点赞数量,但是LYWeibo的数据的时间(具体的时间是在controller里赋值LYWeibo的时候)是在下面的setWeibo方法里拿到的
[self.contentView addSubview:tv];
// 设置 contentView 层的颜色为白色,区分整体cell的灰色,分割效果
self.contentView.backgroundColor = [UIColor whiteColor];
self.backgroundColor = [UIColor lightGrayColor];
self.toolBarView = tv;
// ---------------------- 功能分区 -----------------------------
//创建weiboView控件,没有LYWeibo数据,先创建
self.weiboView = [[LYWeiboView alloc]initWithFrame:CGRectZero];
[self.contentView addSubview:self.weiboView];
// ---------------------- 点击头像进入用户的信息界面 -----------------------------
//表情匹配(在计算cell高度时候要一次图文匹配,这里要涉及显示的功能,也要做一次匹配)
[LYFaceMateTextUtils faceMappingWithTextView:self.textView];
// //如果创建控件时不确定位置或大小 可以先给cgrectzero 表示位置和大小都是0
// // 这里还没有拿到LYWeibo数据,不知道高度,所以暂时不定fram值,先创建
// 在这里创建控件是实现也页面里只有一个imageview,起到了复用的效果
// self.imageView = [[LYWeiboImageView alloc]initWithFrame:CGRectZero];
// [self addSubview:self.imageView];
}
return self;
}
// 重写imageview的get方法,实现复用,不用这种方式就要在init初始化的地方创建好imsgeview
-(LYWeiboImageView *)imageView{
if (_imageView==nil) {
//如果创建控件时不确定位置或大小 可以先给cgrectzero 表示位置和大小都是0
_imageView = [[LYWeiboImageView alloc]initWithFrame:CGRectZero];
[self addSubview:_imageView];
}
return _imageView;
}
//重写转发微博View的get方法 懒加载,实现了转发微博view复用
// 懒加载就是在程序运行后,不是一下子加载很多的控件,而是后期需要的时候再复用
// 懒加载的形式是重写get方法的同时,里面进行判断跟着 if(obj==nil),这种形式
// 这里的转发的微博view也要考虑view的复用问题
-(LYWeiboView *)reWeiboView{
// if里面判断进行的时候要写成_reWeiboView,如果写self.reWeiboView,它属于_eWeiboView的get方法,get方法里面用属性的get方法取值判断会进入死循环,所以这里重写get方法时候一定要用_reWeiboView来判断是否存在
// 注意:_reWeiboView == nil , 整体是一个get方法,
// self.reWeiboView = ,属于set方法;
if (_reWeiboView == nil) {
// 现创建一个,滴哦用的时候赋值时再定Fram
标签:
原文地址:http://www.cnblogs.com/lanyisanqqi/p/5222083.html