登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

UIScrollView嵌套UITableView的问题[复制链接]

请问怎样实现这APP的效果。当UITableView的数据满到一定的程度,底部的UIScrollView就可以通过向上滑动显示全部数据。另外底部的UIscrollview上面由UIView(红色部分)和UItableview组成。UIscrollview的contentSize设置了,UItableview的scrollEnabled也设置为NO都不行。求解决方法,谢谢了

流动的风 573查看 · 8回复 · 2017-7-25 13:04 有用(0
共8个回答
yuyy1989 2017-7-25 17:19 回复

这应该就是一个UITableView,没和UIScrollView嵌套

流动的风 2017-7-25 17:38 回复
yuyy1989 发表于 2017-7-25 17:19
这应该就是一个UITableView,没和UIScrollView嵌套

    咋实现的?
流动的风 2017-7-25 17:38 回复
yuyy1989 发表于 2017-7-25 17:19
这应该就是一个UITableView,没和UIScrollView嵌套

上面红色背景还可以两边侧滑
LCSaber 2017-7-26 11:20 回复

一个tableView实现

import "ViewController.h"

import <Masonry.h>

static CGFloat HeaderHeight = 120.f;
@interface ViewController ()<UITableViewDelegate, UITableViewDataSource>{
UIImageView * imageView;
}
@property (weak, nonatomic) IBOutlet UITableView *testTableView;
@property (strong, nonatomic) MASConstraint *headerHeightConstraint;

@end

@implementation ViewController

  • (void)viewDidLoad {
    [super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

self.testTableView.contentInset = UIEdgeInsetsMake(HeaderHeight, 0, 0, 0);

imageView = [[UIImageView alloc] init];
imageView.image = [UIImage imageNamed:@"testImage.png"];
[self.view addSubview:imageView];
[imageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.mas_topLayoutGuideBottom);
make.left.and.right.equalTo(self.view);
_headerHeightConstraint = make.height.equalTo(@(HeaderHeight));
}];
[_testTableView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew context:nil];
}

  • (void)observeValueForKeyPath:(NSString )keyPath ofObject:(id)object change:(NSDictionary<NSString ,id> )change context:(void )context {

  1. ([keyPath isEqualToString:@"contentOffset"]) {

CGPoint contentOffset = ((NSValue *)change[NSKeyValueChangeNewKey]).CGPointValue;
CGFloat offSetY = 0.f;
if (contentOffset.y <= HeaderHeight) {
offSetY = contentOffset.y;
if (-offSetY < 0) {
offSetY = 0.f;
}
if (fabs(offSetY) >= HeaderHeight) {
offSetY = -HeaderHeight;
}
_headerHeightConstraint.equalTo(@(-offSetY));
}
}
}

  • (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
    {

return 1;
}

  • (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {

return 15;
}

  • (UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {

UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"CELLID"];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CELLID"];
}
cell.textLabel.text = @"dsadasd";
return cell;
}

  • (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.
}

@end

dahaore2 2017-7-31 17:48 回复

这个最上面就是一个headview吧 整体效果不需要嵌套 就用tableview就可以实现

流动的风 2017-8-2 00:33 回复
dahaore2 发表于 2017-7-31 17:48
这个最上面就是一个headview吧   整体效果不需要嵌套  就用tableview就可以实现
...

那怎么设置呢?
akiaven 2017-8-23 15:23 回复

这就是一个tableview吧,上面红色的可以滑动,那是因为有tableheaderview这个东西的存在,加了个轮播图片功能而已,这就是一个tableview

卿颜淡墨 2017-8-29 11:38 回复

[i=s] 本帖最后由 卿颜淡墨 于 2017-8-29 11:40 编辑 [/i]

我觉得可以监听偏移 试一试

需要登入后才可以评论 登录 | 立即注册
*滑动验证:
关闭

每日头条

通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

返回顶部 返回版块