首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >UIScrollView只在任意应用程序交互之后才能工作

UIScrollView只在任意应用程序交互之后才能工作
EN

Stack Overflow用户
提问于 2016-07-15 08:07:13
回答 1查看 62关注 0票数 0

我知道这是一个重复的this问题,但这个问题似乎被抛弃了,提问者没有提供反馈,目前的答案对我没有用。

我现在有一个简单的应用程序,它的主视图包含一个UIScrollView。当应用程序第一次安装和运行时,没有滚动行为,视图被卡在内容视图的顶部,这不是预期的功能。通过旋转设备、在文本字段中触摸或触摸分段控件与应用程序交互都可以纠正滚动功能(即赋予滚动到内容视图底部的能力):

为什么会发生这种行为?

怎么能修好?

详细信息:

一旦应用程序被交互,它可以放在后台并重新打开,而不会失去滚动功能。从后台手动终止应用程序并重新打开它将重新触发问题。最终的目标是让滚动功能立即正确地工作,而不需要用户执行任意的仪式来解锁应用程序的部分功能(在苹果的HMI指导方针中非常不鼓励)。

问题中的UIScrollView (scrollView)嵌入到最顶层的UIView中,并且它有一个作为子级的UIView (scrollContentView)。滚动视图的contentSize.height是在我的viewWillLayoutSubviews()函数中以编程方式定义的,这是UIScrollView在执行上述操作时使用的高度:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
override func viewWillLayoutSubviews()
{
   super.viewWillLayoutSubviews();

   // (This is just setting a child table of the scrollView's height)
   // Set the goal table's height to the height of its contents
   formulaTableHeightConstaint.constant = getGoalTableHeight();

   scrollView.contentSize.height = getGoalTableHeight() + Constants.formHeight;
}

在viewWillLayoutSubviews()函数的末尾,如果我打印scrollView.contentSize.height,它在2000年左右显示一个很大的值,而打印scrollView.frame.size.height则显示一个大约600的值。

尝试:

我试过使用scrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: SomeArbitraryValues, right: 0)。这允许在应用程序第一次打开时立即滚动,但这种行为是不直观的,因为即使将bottom设置为应该小于滚动内容高度的值,也允许应用程序在内容底部滚动很长的距离。同样,设置较小的值通常会防止视图滚动到内容的底部。根据我从文档中了解到的情况,这似乎是一个稍微不相关(可能很难闻)的属性,可以用来解决这个问题(尽管我可能错了)。同样,尽管与contentInset的混淆似乎会触发正确的滚动行为,但是在滚动操作之前和之后打印contentInset值显示没有发生任何更改。

我还尝试向scrollContentView添加一个高度约束,并以编程方式设置该高度,但没有效果。

我们非常感谢在这件事上提供的任何帮助。

EN

回答 1

Stack Overflow用户

发布于 2016-07-15 08:33:08

您应该将contentSize高度设置为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scrollView.contentSize = CGSizeMake(width, getGoalTableHeight() + Constants.formHeight); 

scrollView.contentSize.height引用从contentSize方法返回的结构的height成员。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38400648

复制
相关文章
await 只在 async 函数中工作
关于 promise 的一种更优雅的写法 async/await 中,await 只会出现在 async 函数中,我们使用 async/await 时,几乎不需要 .then,因为 await 为我们处理等待;但是在代码的顶层,当我们在 async 函数的外部时,我们在语法上是不能使用 await 的,所以通常添加 .then/catch 去处理最终结果或者 error。
前端开发博客
2020/11/04
1.5K0
await 只在 async 函数中工作
UIScrollView
前面两篇文章聊的UITableView和UICollectionView都是继承自UIScrollView,本篇文章就来简单聊聊UIScrollView。
拉维
2019/08/12
9090
UIScrollView
UIScrollView
UIScrollView UIScrollView全部API学习。 //1.设定滚定条的样式 typedef NS_ENUM(NSInteger, UIScrollViewIndicatorStyle) { UIScrollViewIndicatorStyleDefault, // black with white border. good against any background 黑白边框 UIScrollViewIndicatorStyleBlack, // black only. small
用户1941540
2018/05/11
1.8K0
iOS开发之UIScrollView在Autolayout下的使用
一、使用的基本原则: 原则1:UIScrollView的size依赖于subviews 首先在StoryBoard中拖入一个UIScrollView,用Pin按钮,随意设置其布局。因为设置UIScrollView的布局约束是没有用的,UIScrollView的size(即contentSize)是根据其中的subviews所占据的size来计算的。当然,如果contentSize的内容不足以布满整个UIScrollView时,滚动条将不会出现,UIScrollView也不会滚动。 原则2:subviews的
YungFan
2018/04/24
9880
UIScrollView进阶技巧
UIScrollView是iOS开发中经常用到的UI控件,像图片轮播之类的效果都可以用UIScrollView来实现,当然轮播什么的网上有很多教程了,我就不多说了。今天主要讲三个跟交互有关的效果(稍微有点标题党啊,其实也没有多进阶……),也不是直接用的UIScrollView,而是它的子类UITableView和UIWebView。先看一下效果图吧,都来自我自己的项目:
Sheepy
2018/09/10
9860
UIScrollView进阶技巧
xcode uiscrollview with paging and zoom
Here is a simple and sample code that demonstrate the photo slide function with zoom using uiscrollview.  image.png this is the first photo  image.png sliding image.png zooming in particular photo  1. first drag three photos to your project , size no
阿新
2018/04/12
1.1K0
xcode uiscrollview with paging and zoom
UIBarButtonItem我用了这些姿势才能和你交互
因为系统是没有方式可以获取到 Done 按钮的,我们运用运行时倒是可以获取到这个按钮。
君赏
2018/08/31
8930
UIBarButtonItem我用了这些姿势才能和你交互
工作两年还是只在几百人的小公司当码农,如何才能进大公司?
几百人的企业已经算是标准的中型企业了,不能算是小企业了,对于程序员来讲大公司未必就是传说中的圣堂,作为一个技术人关键有一个好的平台发展自己的特点,这种平台不一定就是在大公司,当然大公司在监视上以及规范性上更好一些,但未必对于个人的发展一定是最合适的,不要迷信所谓的大公司,适合自己发挥的平台才是最合适的。
程序员互动联盟
2020/04/03
5670
李飞飞:在物体识别之后,计算机视觉还要多久才能理解这个世界?
AI科技评论按:9 月 26 日,机器人领域的顶级学术会议 IROS 2017 进入第二日。上午,著名华人计算机视觉专家、斯坦福副教授李飞飞,在温哥华会议中心面向全体与会专家学者作了长达一小时的专题报告。 在昨天发布的上篇 李飞飞:为什么计算机视觉对机器人如此重要? | IROS 2017中,李飞飞介绍了视觉对生物的重要性,以及计算机视觉在物体识别任务中的飞速发展。在下篇中,李飞飞继续与大家讨论了计算机视觉的下一步目标:丰富场景理解,以及计算机视觉与语言结合和任务驱动的计算机视觉的进展和前景。场景理解和与语
AI科技评论
2018/03/14
1.3K0
李飞飞:在物体识别之后,计算机视觉还要多久才能理解这个世界?
在操作系统重启后恢复应用程序的工作状态
发布于 2018-01-21 13:29 更新于 2018-09-01 00:13
walterlv
2018/09/18
2.3K0
【iOS开发】UIScrollView 看不到内容、UIScrollView 不能滑动
初学者第一次使用 UIScrollView 的时候,很可能会遇到 UIScrollView 滑动不了,或者明明添加了内容,却看不到的问题。 这里展示最简洁、最常态化的一种在 UIScrollView 中添加可以滑动的 UIImageView 的案例。
KyXu
2019/04/11
1.6K0
【iOS开发】UIScrollView 看不到内容、UIScrollView 不能滑动
Silverlight 2 应用程序部署到任意HTML页面
Silverlight 2 应用程序部署到任意HTML页面,可以采用ActiveX的方法,在页面中放入object标签,设置相应的属性即可。使用 object 元素,可以用与所有受支持浏览器兼容的方式在 HTML 中嵌入和配置 Silverlight 插件。具体可参看:如何使用 HTML 将 Silverlight 添加到网页. 例如webabcd的Silverlight 2.0 Demo使用以下代码来展示他的示例: <object type="application/x-silverlight-2" he
张善友
2018/01/22
5370
Silverlight 2 应用程序部署到任意HTML页面
邓滨:信号处理+深度学习才能实现语音交互
本文来自小鱼在家首席音频科学家邓滨在LiveVideoStackCon 2018讲师热身分享,并由LiveVideoStack整理而成。邓滨认为,传统的信号处理与前沿的深度学习技术结合,才能实现准
LiveVideoStack
2021/09/01
7610
Infinite Scrolling in UIScrollView
- (void)viewDidLoad {     [super viewDidLoad];          [theScrollView setContentSize:CGSizeMake(3 * theScrollView.bounds.size.width, theScrollView.bounds.size.height)];     [theScrollView setPagingEnabled:YES];          CGRect aFrame = theScrollView.bound
阿新
2018/04/12
5350
python到底要学多久才能找到工作?
很多小伙伴加我好友问“行哥,我学python要学多久才能找到工作呢?” 但是经过行哥的仔细分析之后,发现这个问题很有意思
行哥玩Python
2020/07/14
1.6K0
python到底要学多久才能找到工作?
让应用程序同时只启动一次
软件的实现方式或者第三方的依赖只能保证单进程运行,也就是说只能让程序同一时间启动一个进程。
河边一枝柳
2021/08/06
9440
让应用程序同时只启动一次
UIScrollView控件实现图片轮播
图片轮播.gif 主要实现思路是:根据图片总数及宽高设置好ScrollView的大小,每切换一张图片相当于在ScrollView上进行一个图片宽度的移动行为,并加入定时器,实现自动轮播。 点击进去,长按可以使用幻灯片模式自动轮播图片 ScrollView 里面嵌套ScrollView ,实现两只手指把图片放大放小功能。(图片位置未完善) Github源码地址
LeeCen
2018/10/11
2.5K0
UIScrollView控件实现图片轮播
自学机器学习,怎么才能找到工作啊?
一个叫做AdditionalWay的网友,在Reddit提出了这个直击灵魂的问题,引发了大量讨论,两天热度已经超过500。
Python数据科学
2019/07/22
1K0
自学机器学习,怎么才能找到工作啊?
【翻译】CATIE Web 应用程序任意文件读取漏洞
https://bishopfox.com/blog/catie-web-v-20-04-0-advisory
信安百科
2023/10/02
1500
【翻译】CATIE Web 应用程序任意文件读取漏洞
点击加载更多

相似问题

只在单击"submit“之后,Keyup才能工作。

17

onClickListener只在几次单击之后才能工作。

12

Mansory只在刷新(jquery)之后才能工作( rails)

12

服务只在$rootScope之后才能工作。$appy()`appy

22

指令绑定只在单击元素之后才能工作。

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文