如何在UITableviewCell中创建UITableView

 我来答
崔师尊
推荐于2016-06-27 · TA获得超过9317个赞
知道大有可为答主
回答量:3387
采纳率:36%
帮助的人:1763万
展开全部
你的情况其实仅仅一个collectionView就可以搞定了,根据数据源分组对应分几个section,展示更多时候,就修改对困培应section中的数据源,刷UI就好了,你所“必须”要关注的是你的CollectionView的contentSize以及如何Layout,还有优化的话考虑Cache layout类中的attributes.
嵌套方案
今天刚刚这么写了collectionView嵌套collectionView(被要求的,不是没事找事),说汪敏唯下思路(TableView嵌套做法类似,XIB/SB与纯代码区拿铅别请忽略...)
PS: 有写错的地方,希望- -CollectionView大神来喷..Orz
1)自定义cell
需要挂collectionView的cell里面贴如下代码:
//.h
@class WBrowserWhisperFlowLayout;
static NSString *BrowserWhisperCoverFlowCellIdentifier = @"BrowserWhisperCoverFlowCellIdentifier";

@interface WBrowserWhisperCoverFlowCell : UICollectionViewCell
@property (nonatomic, strong) WBrowserWhisperFlowLayout *layout;
@property (nonatomic, strong) UICollectionView *collectionView;

- (void)setCollectionViewDataSourceDelegate:(id<UICollectionViewDataSource, UICollectionViewDelegate>)dataSourceDelegate;

// .m
- (instancetype)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
_layout = [[WBrowserWhisperFlowLayout alloc] init];
_layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0);
_layout.itemSize = CGSizeMake(CGRectGetWidth(self.frame) - 100, 200);
_layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;

_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:_layout];
[_collectionView registerClass:[WBrowserWhisperCoverFlowItemCell class] forCellWithReuseIdentifier:BrowserWhisperCoverFlowItemCellIdentifier];
_collectionView.backgroundColor = [UIColor whiteColor];
_collectionView.showsHorizontalScrollIndicator = NO;
_collectionView.pagingEnabled = YES;
[self.contentView addSubview:_collectionView];
}
return self;
}

- (void)layoutSubviews {
[super layoutSubviews];
_collectionView.frame = self.contentView.bounds;
}

- (void)setCollectionViewDataSourceDelegate:(id<UICollectionViewDataSource, UICollectionViewDelegate>)dataSourceDelegate {
_collectionView.dataSource = dataSourceDelegate;
_collectionView.delegate = dataSourceDelegate;
[_collectionView reloadData];
}

2)记住在cell中的CollectionView是在cell之后初始化的,也就是在初始化这个cell的之后要立即设置这个cell中CollectionView的数据源跟代理,不然Crash没商量。
3.1)修改cell中CollectionView的数据源(若有变化,比如数据主动/被动修改),然后修改该CollectionView属性(layoutAttribute会被修改)以及重新layout两个CollectionView。(tableView则是reloat对应的indexPath)
4)继续吐槽:CollectionView的精髓在于会不会写layout。。CollectionView让TableView可以say goodbye了,但是需要花一定的时间去学习否则很难用好,推荐资源:
苹果官方文档
iOS UICollectionView, 2nd Edition 电子书
RayWench视频
greystar_cn
2015-08-10 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
使用[XXX addSubView:(NSInteger)section:(NSInteger)section,或者加到UITableViewCell中也可以敬竖. will be adjusted to default or specified header height- (UIView *)tableView; custom view for header:(UITableView *)tableView viewForFooterInSection; //,如果亮腊大加在头中- (UIView *)tableView;/ custom 加在头和脚;就可以了: searchbar]在你需要添加的地方,想加在局正哪:(UITableView *)tableView viewForHeaderInSection,就加在哪; /
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式