新浪微博个人主页效果 - 解题思路 & 代码

2017-08-29  本文已影响0人  helfy

背景

做好的的效果图

123.gif

先简单的说下结构和原理

@property (nonatomic, strong) UICollectionView *collectionView;
@property (nonatomic, strong) SMPHeaderView *headerView;
@property (nonatomic, strong) SMPCatalogView *catalogView;
@property (nonatomic, strong) NSArray *catalogs;
//当前横向滚动
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGRect rect = [self.headerView convertRect:self.headerView.bounds toView:self.view];
    [[NSNotificationCenter defaultCenter] postNotificationName:@"contentOffset" object:@(rect.origin.y)];
    if([self.headerView superview] == self.view) return;
    [self.view addSubview:self.headerView];
    [self.headerView mas_remakeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(@(rect.origin.y));
        make.left.right.equalTo(self.view);
        make.height.equalTo(@(K_HEADER_HEIGTH));
    }];
}

- (void)tableViewDidScroll:(UITableView *)tableView {
    if([self.headerView superview] == tableView.tableHeaderView) return;
    [tableView.tableHeaderView addSubview : self.headerView];
    [self.headerView mas_remakeConstraints:^(MASConstraintMaker *make) {
        make.left.top.bottom.right.equalTo(tableView.tableHeaderView);
    }];
    [tableView.tableHeaderView layoutSubviews];
}

其他

代码地址

https://github.com/helfyz/SinaMainPage
觉得对你有帮助的朋友,麻烦加下星,最近找工作中,大家懂的。。。

上一篇下一篇

猜你喜欢

热点阅读