永发信息网

ios屏幕内容超过屏幕大小问题。可以上下滚动

答案:4  悬赏:60  手机版
解决时间 2021-01-14 15:27
  • 提问者网友:niaiwoma
  • 2021-01-14 09:39
我是ios新手,刚刚学ios,我想知道像 淘宝/京东那样的ios App,首页中有很多产品信息,手机屏幕一开始只显示部分内容,但可以通过手指上下滑动来查看底下的内容 。求指点这是怎么实现的。我看了一些参考书大多数的demo 都只在一屏幕上布置UI元素,或者UITableView实现滚动。求指点,万分感谢。!(希望能说的详细点)。
最佳答案
  • 五星知识达人网友:西风乍起
  • 2019-09-10 18:07
1. 把所有内容添加到UIScrollview中
2. 判断scrollview的contentsize的高度是否超过屏幕高度,如果超过屏幕高度,那么就可以滚动.如果没有超过屏幕高度就不可以滚动.
如果还有什么不明白的,回复我给你解决


像你说的这个类似于淘宝之类的 都是UITableview或者UICollectionView写的.你上网看看UITableview的实现,我先给你一些简单的实现逻辑 你看看
1. 在viewcontroller里 声明成员变量
@property (nonatomic, strong) UITableView * tableView;
2. 懒加载 重写getter方法 ,注意下 下面的那两个代理是最重要的,用来你显示UI和交互的
- (UITableView *)tableView{

if (!_tableView) {

_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 44, SCREEN_WIDTH, SCREEN_HEIGHT - 64 ) style:UITableViewStyleGrouped];

_tableView.delegate = self;//代理是最重要的

_tableView.dataSource = self;//代理是最重要的

_tableView.backgroundColor = [UIColor clearColor];

_tableView.showsVerticalScrollIndicator = NO;

[_tableView registerNib:[UINib nibWithNibName:@"KBNoticeTableViewCell" bundle:nil] forCellReuseIdentifier:@"KBNoticeTableViewCell"];

}


return _tableView;

}
3.  在viewdidload里 把tableview添加到view上 
[self.view addSubview:self.tableView];
4. 实现UITableview的代理方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

return self.dataArray.count;//返回一共有多少行.可以根据不同的组返回不同的行数.

}




- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

return 75;//返回每一行cell的高度.可以不同的行返回不同的高度

}




- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{

return CGFLOAT_MIN;//返回header的高度,没有的话返回最小值

}




- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{

return CGFLOAT_MIN;//返回footer的高度  没有的话返回最小值,

}




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

//创建某一行cell 我用的是xib注册的cell
KBNoticeTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"KBNoticeTableViewCell" forIndexPath:indexPath];

cell.dataDic = self.dataArray[indexPath.row];

return cell;

}




- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

//点击某一行cell

}
这样你就能实现一个你说的那个功能了.还不懂你就百度查查UITableview的实现,很多简书都写了入门级别的教程
全部回答
  • 1楼网友:逃夭
  • 2020-12-15 09:15
列表形式的数据显示用UITableView,不是列表形式的想实现滚动用UIScrollView,其实TableView就是在ScrollView的基础上做的新功能,父类就是ScrollView。 你只要新建一个UIView,设置成你需要的大小,在上面摆UI,然后addSubView成为ScrollView的子视图,设置ScrollView的contentSize为这个view的size就可以实现滚动了。都是很基本的东西,多做做就会了。
  • 2楼网友:老鼠爱大米
  • 2020-07-16 00:36
你设置uiscrollview.consize的宽度和高度,高度设置为你最底层的高度,我是这么认为,别人都可以滑动,还是不行的话,把告诉设置为10000试试,如果不是这个原因,检查你空寂是不是加载uiscrollview上面
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯