永发信息网

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

答案:4  悬赏:60  手机版
解决时间 2021-01-14 15:27
我是ios新手,刚刚学ios,我想知道像 淘宝/京东那样的ios App,首页中有很多产品信息,手机屏幕一开始只显示部分内容,但可以通过手指上下滑动来查看底下的内容 。求指点这是怎么实现的。我看了一些参考书大多数的demo 都只在一屏幕上布置UI元素,或者UITableView实现滚动。求指点,万分感谢。!(希望能说的详细点)。
最佳答案
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的实现,很多简书都写了入门级别的教程
全部回答
列表形式的数据显示用UITableView,不是列表形式的想实现滚动用UIScrollView,其实TableView就是在ScrollView的基础上做的新功能,父类就是ScrollView。 你只要新建一个UIView,设置成你需要的大小,在上面摆UI,然后addSubView成为ScrollView的子视图,设置ScrollView的contentSize为这个view的size就可以实现滚动了。都是很基本的东西,多做做就会了。
你设置uiscrollview.consize的宽度和高度,高度设置为你最底层的高度,我是这么认为,别人都可以滑动,还是不行的话,把告诉设置为10000试试,如果不是这个原因,检查你空寂是不是加载uiscrollview上面
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
各位吧友 人生哲学漫谈怎么样
Java中split的用法
hd6790和amd555玩gta5
以《我眼中的体育》为题的作文
94厘米等于多少尺寸
请问一下在刑拘当中其家属能否查看监室监控录
what和are能否连用呢?帮帮忙吧
怎么样切鸡肉 肉不会碎
为什么现在大部分手机都是前黑后白,而不做成
本人男,身高177厘米.请问标准体重为
土地使用证只知道地号,能查出土地位置在哪里
关于为什么不能说地壳由硅铝层和硅镁层构成的
校园网宽带认证客户端
什么是基因克隆?
泰国佛牌怎么看真假
推荐资讯
小草是怎么张起来得
冰敷多长时间
正四是什么意思
软陶泥是不是橡皮泥,它们区别在哪?还有价格
梦幻西游方寸男起名
爱情荷尔蒙可以持续多久?
这个具体是世界杯的什么标志?
一个数被8除余4,被6除余2,那么它被48除余多
香港大多数人都是有钱人吗
银行A与银行B有何区别
192.168.118.1
求大神教w10,怎么安装office2016,并激活
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?