自定义一个view 添加到UITableView头视图要怎么添加

 我来答
若以下回答无法解决问题,邀请你更新回答
遇见你882
2017-03-31 · 超过201用户采纳过TA的回答
知道小有建树答主
回答量:241
采纳率:0%
帮助的人:227万
展开全部
创建工程项目和视图控制器
创建工程项目UICollectionView,新建一个UIViewController。选中工程,右键-New File…选择“Cocoa Touch Class”-Next,给个合理的名称ViewController,再Next完成。
在AppDelegate.m文件包含#import "ViewController.h"。添加代码:
UINavigationController *navC = [[UINavigationController alloc]initWithRootViewController:[[ViewController alloc]init]];
self.window.rootViewController = navC;//将navC设置为根视图控制器。
修改一下ViewController的显示样式,执行编译,run一下,效果如图。

创建自定义UICollectionViewCell
选中工程,右键-New File…选择“Cocoa Touch Class”-Next,选择继承于UICollectionViewCell类,给个合理的名称CollectionViewCell,再Next完成。
1、自定义所需要的控件,比如UIImageView:
@property(nonatomic ,strong)UIImageView *imgView;
2、初始化控件,在方法- (id)initWithFrame:(CGRect)frame中实现:
self.imgView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 30, 150, 140)];
self.imgView.backgroundColor = [UIColor groupTableViewBackgroundColor];
[self addSubview:self.imgView];

实现初始化UICollectionView方法
1、在ViewController.h添加事件代理和数据源代理<UICollectionViewDataSource,UICollectionViewDelegate>。
2、在ViewController.m创建UICollectionView。需要使用UICollectionViewFlowLayout来创建,使用方法- (instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout;如果只用普通的init方法,是实现不了的。
3、设置flowLayout的属性。
4、初始化CollectionViewCell和头部。

实现UICollectionView的Delegate、DataSource方法
1、返回Items个数:collectionView: numberOfItemsInSection:
2、返回Sections个数:numberOfSectionsInCollectionView:
3、返回Cell显示内容:collectionView: cellForItemAtIndexPath:
4、返回头部尾部显示内容:collectionView: viewForSupplementaryElementOfKind: atIndexPath:
5、选中时调用的方法:collectionView: didSelectItemAtIndexPath:

显示CollectionView及设置数据源
在viewDidLoad方法内:[self.view addSubview:self.collectionView];
代码self.collectionView会自动调用setter、getter方法。即调用- (UICollectionView *)collectionView方法初始化并返回collectionView。然后addSubview:到self.view上。配合广告栏和定时器,完成显示。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式