0825-QQ好友列表点击展示下拉(应用程序图片点击下载 - 保留tableView cell)(数据传递之 - block方法)(数据传递之 - 通知)(静态单元格 - tableview静态创建cell)(控件不显示原因 打印父控件的frame是否为 0000)

------------------------

0825-QQ好友列表点击展示下拉

1、新建FriendModel

2、拖控件 tableViewController 指定类为viewController

3、实现数据源方法

 4、隐藏状态栏

5、titleForheader方法 返回没个节组的头部文字 这个后面注释掉

6、heightForHeader方法

7、自定义 UITableViewHeaderFooterView 

方法1:UITableViewHeaderFooterView *header = [tableView dequeReusableHeaderFooterViewWithIdentifier:ID];

header里面添加一个button

方法2:自定义tableHearderView = 自定义UIView  画一个imageView 2个 label

 8、layoutSubviews 当 当前控件frame被系统从0改成了相应的高度宽度 有值    这里子控件可以修改其frame   

而不能在- (id)initWithReuseIdentifier:(NSString *)reuseIdentifier 这个方法里设置子控件的值

因为self(UITableViewHeaderFooterView)是父控件 frame还是 (CGRect){{0,0}{0,0}}

9、btn.contentHorizontalAlignment

btn.contentEdgeInsets btn.imageEdgeInsets  btn.titleEdgeInsets = UIEdgeInsetMake(0,10,0,0);

 10、点击headerView 让组的cell数量变成0

这样就只剩headerView了

 11、groupModel添加属性 @property (nonatomic,assign) BOOL open;

12、headerview 通知delegate(控制器)刷新表格

@property (nonatomic,assign) id<FFHeaderViewDelegate> delegate;

13、数据传递之-代理方法 block方法 通知方法

14、重写tableHeaderview(继承自UITableViewHeaderFooterView)的方法 didMoveToSuperView

小箭头图片的乡下转90度

15、图片选择后会变形   解决方法

 ------------------------------

应用程序图片点击下载 - 保留tableView cell

storyboard - table view - table view cell 设置为custom  设置可重用标识符为apps 里面拖控件

实现数据源方法- cellForRowsInSection

[tableview dequeReusableCellWithIdentifier:@"apps"]

新建一个FFAppsTableViewCell

让storyboard中的cell指定FFAppsTableViewCell类占用

连线storyboard中的cell中的button imageview label 控件 到 FFAppsTableViewCell的属性上 方便 其访问和修改该属性的值

 button的disabled状态下文字和背景图片的设置

 cell上的button图片属性点击修改后  需要修改该cell保存的数据  self.appmodel.isDownload = YES;

#warning 当cell 重用的时候 应该注意 : 在重用cell 的时候  应该  该变cell上所有控件的状态

 

//  CZAppsTableViewCell.m

#import "CZAppsTableViewCell.h"
#import "CZAppsModel.h"
@interface CZAppsTableViewCell()

@property (weak, nonatomic) IBOutlet UIImageView *imgView; //连线storyboard中的 table view controller - table view - cell

@property (weak, nonatomic) IBOutlet UILabel *nameLbl;//连线

@property (weak, nonatomic) IBOutlet UILabel *introLbl;//连线

@property (weak, nonatomic) IBOutlet UIButton *downloadBtn;//连线


@end

@implementation CZAppsTableViewCell
- (IBAction)downloadClick:(id)sender {
    
    UIButton *btn = (UIButton *)sender;
    
    btn.enabled = NO;
    
    //代表已下载
    self.apps.isDownload = YES;
    
    
}


+ (instancetype)appsTableviewCellWithTableview:(UITableView *)tableview
{
    
    return [tableview dequeueReusableCellWithIdentifier:@"apps"];
    
}


- (void)setApps:(CZAppsModel *)apps
{
    _apps = apps;
    
#warning 当cell 重用的时候 应该注意 : 在重用cell 的时候  应该  该变cell上所有控件的状态
    

    
    self.nameLbl.text = apps.name;
    
    self.imageView.image = [UIImage imageNamed:apps.icon];
    
    self.introLbl.text = [NSString stringWithFormat:@"%@|%@",apps.size,apps
                               .download];
    
    self.downloadBtn.enabled = (apps.isDownload == NO);
    
    
}
CZAppsTableViewCell.m

 

 

 

 

----------

数据传递之 - block方法

(

block 知识回顾

Block在程序运行时产生的一段代码

与函数不同( 函数是在程序编译前写好的 )

)

HMHeaderView.h

 

   // 有的人用strong 也可以  

(UIImage *)p  p指针指向 UIImage类型变量   HMHeaderViewBlock block  指向函数类型的指针变量block

 

控制器里

viewForHeaderInSection

{

}

HMHeaderView.m

 

 -------

数据传递之 - 通知

 

1、添加监听者为控制器 监听通知名称 friend (nil 任何对象发布的通知)

控制器viewDidLoad

 

 2、点击按钮 发布通(通知名称为 friend)

HMHeaderView.m - nameBtnClick

 3、控制器监听到 friend通知

开始执行notiClick方法

4、销毁通知

控制器里销毁通知

通知必须要在控制器消失的时候做销毁操作 

这里还可以在willDisAppear里销毁通知

 

 

--------------------

 

静态单元格 - tableview静态创建cell

纯拖控件 一行代码不用写 - 仅仅了解即可  工作中还是用代码来创建动态单元格

1、拖控件table view controller

2、让UIViewController 改成继承UITableViewController

3、写数据源方法

可重复使用cell创建写入代码块

4、创建plist文件  3组  每组不同行数

5、选中storyboard中tableView ,设置content属性为 static cell

 这时候 table view下的table view cell上一层上面多了一个  table view sections了

6、story board - table view sections控件   设置rows为1

7、story board - table view sections - table view cell 设置style 为 basic   image设置一张图片 

8、设置story board - table view sections - table view cell - content view - label 设置text属性 为  我的好友动态

9、选择story board - table view - 设置sections为3 自动会将设置好的那个section 变成3个都设置一样的section了

10、选择story board - table view -Section-2  设置 rows为2

11、选择story board - table view 设置row height为64

12、选择story board - table view -Section-1 设置Header为空 

 ------------------

控件不显示原因 打印父控件的frame是否为 0000

----------------

其他:

静态方法中不用static NSString *string; 只用NSString *string就可以了

 

posted @ 2016-03-01 17:48  海龙王来了  阅读(184)  评论(0)    收藏  举报
友情链接:废钢破碎机  带式压滤机