关键词:
【中文标题】导航到包含 ScrollView 的 ViewController 太慢了【英文标题】:Navigating to ViewController containing ScrollView Going too Slow 【发布时间】:2016-01-18 07:55:50 【问题描述】:这就是从 ViewController A 推送到 ViewController B 的方式
UIStoryboard *mainStory = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ListingViewController *listView = [mainStory instantiateViewControllerWithIdentifier:@"listing"];
[self.navigationController pushViewController:listView animated:YES];
我也尝试过这种方式,在 StoryBoard 中使用 segue
[self performSegueWithIdentifier:@"Associate3" sender:sender];
第一次推送到这个 ViewController 在开始推送之前冻结(大约 4 秒),知道 VC B 在其 XIB 中包含 UIScrollView 对象,
你们中有人遇到过这种情况吗,有人知道如何解决这个延迟吗?
编辑:
我已经评论了所有的 web 服务调用方法,没有任何变化!我认为这是一个分配延迟,我正在使用带有标识符的故事板启动来推送 VC B,但是当我使用分配方法时:VC *B = [[VC alloc] init]
,然后推送到这个视图可以毫不拖延地工作,但是我不需要使用的问题分配方式!!
【问题讨论】:
您正在调用 ViewController B 中的任何 Web 服务? 是的,在视图加载读取 JSON 后调用 httprequest, viewDidLoad ViewController B的分享代码 但是当我推送到其他不包含 ScrollView 的视图 (HttpRequest) 时,我也在做同样的事情,它只是推送得很好,除了这个在其 IB 中有 ScrollView 的视图! @Samir 请在 viewDidAppear 而不是 viewDidLoad 中调用您的网络服务。我希望你能得到你的解决方案。 【参考方案1】:终于找到问题了,是VC B标签中使用的自定义字体,只需将它们设置回系统字体而不是Roboto就解决了我的问题,我认为系统需要时间才能找到特定的字体姓名。希望这对其他人有用
【讨论】:
【参考方案2】:您似乎在 ViewController B 的 ViewWillAppear
或 ViewDidLoad
中对 main thread
执行了一些繁重的操作
注释上述两种方法的完整代码,然后运行您的应用程序以验证应用程序中的问题。
因此,如果它经过验证,那么您必须将繁重的操作从 main thread
转移到 background thread
。
【讨论】:
尝试这样做,结果相同,我确定这都是关于我在 VC B 的 IB 中添加的 ScrollView 对象 好的,然后从 IB 中删除 ScrollView,然后分享您的结果。 再一次,什么都没有改变......这让我发疯了!! 这表明 ScrollView 与它无关,现在删除所有项目并尝试在其中使用单个 UILabel。 只在IB中留下标签,时间相同!【参考方案3】:这可能是因为推送是在不同的线程中执行的。尝试在主线程中推送 viewController。即,将您的推送控制器代码替换为
dispatch_async(dispatch_get_main_queue(), ^
UIStoryboard *mainStory = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ListingViewController *listView = [mainStory instantiateViewControllerWithIdentifier:@"listing"];
[self.navigationController pushViewController:listView animated:YES];
);
【讨论】:
【参考方案4】:尝试在ListingViewController
类中改viewDidLoad
方法来调用async
- (void)viewDidLoad
[super viewDidLoad];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^
//move your code here
// if you need to do something on ui (reload table view e.t.c) - call async in main thread
dispatch_async(dispatch_get_main_queue(), ^
//Your UI code
);
);
【讨论】:
同样的结果,没有任何变化,它应该是在点击按钮后直接执行操作,但在执行此操作前大约 3 秒冻结了!!!! 你有东西在 viewWillDisappear 吗? 如果你向我们展示你的代码,你在哪里调用网络服务会更好。 亲爱的,我已经评论了所有的webservice调用方法,没有任何改变!我认为这是一个分配延迟,我正在使用带有标识符的故事板启动来推送 VC B,但是当我使用分配方法时:VC *B = [[VC alloc] init],然后推送到这个视图它可以毫无延迟地工作,但是我不需要使用分配方法的问题!【参考方案5】:您可以使用带有 Xcode 的开发人员工具“Instruments-Time Profiler”。它可以检查时间费用。那么,我想你会发现你的问题。
【讨论】:
我认为我无法理解它的结果,如果你有任何快速教程会很棒 1.打开 Xcode。 2. 选择 Xcode > 打开开发者工具 > 仪器。 3. 打开时间分析器。添加到 ScrollView 的 UIView 不适合全屏,顶部有导航栏
】添加到ScrollView的UIView不适合全屏,顶部有导航栏【英文标题】:UIViewaddedtoScrollViewnotfittingfullscreenwithNavigationbaratthetop【发布时间】:2015-12-1208:26:45【问题描述】:编辑:我的问题的小更新,我现在作为解决方案所做的显然只是... 查看详情
ScrollView 触摸转发到 UINavigationController
】ScrollView触摸转发到UINavigationController【英文标题】:ScrollViewtouchforwardingtoUINavigationController【发布时间】:2011-12-1319:55:25【问题描述】:我想要做的是在导航栏上方放置一个滚动视图,但仍然让导航栏获得触摸输入。我查看了响... 查看详情
我可以使用具有不同 UIview 类而不是 UINavigationController 的水平 ScrollView 来导航到不同的视图控制器吗
...可以使用具有不同UIview类而不是UINavigationController的水平ScrollView来导航到不同的视图控制器吗【英文标题】:CanIusehorizontalScrollViewwithdifferentUIviewclassesinsteadofUINavigationControllertonavigatetodifferentviewcontrollers【发布时间】:2012-09-0713:52:... 查看详情
ViewPager里面的ScrollView,自动滚动到中间
】ViewPager里面的ScrollView,自动滚动到中间【英文标题】:ScrollViewinsideViewPager,scrollstomiddleautomatically【发布时间】:2013-04-1710:24:56【问题描述】:我有一个ViewPager,它包含同一个片段的多个实例,这个片段包含一篇文章。文章视... 查看详情
Android:包含 textInput 的 ScrollView 不滚动
】Android:包含textInput的ScrollView不滚动【英文标题】:Android:ScrollViewwhichcontainstextInputnotscrolling【发布时间】:2017-10-2023:06:18【问题描述】:我有一个包含太多文本输入的滚动视图。一切正常,直到我将textAlign:\'right\'添加到TextInpu... 查看详情
Qml:包含 ListView 的 ScrollView 不调整 ScrollBar 句柄
】Qml:包含ListView的ScrollView不调整ScrollBar句柄【英文标题】:Qml:ScrollViewcontainingaListViewdoesnotadjustScrollBarhandle【发布时间】:2020-02-0618:00:17【问题描述】:我正在尝试根据需要将垂直滚动条添加到ListView。有人告诉我,最好的方法... 查看详情
将 ScrollView 位置重置到页面顶部
】将ScrollView位置重置到页面顶部【英文标题】:ResettingScrollViewpositiontothetopofthepage【发布时间】:2021-06-0520:01:04【问题描述】:我正在尝试在视图出现时将滚动重置到页面顶部(例如,当您从导航链接返回时)。ScrollView嵌入在... 查看详情
SwiftUI:NavigationLink 内的水平 ScrollView 会中断导航
】SwiftUI:NavigationLink内的水平ScrollView会中断导航【英文标题】:SwiftUI:horizontalScrollViewinsideNavigationLinkbreaksnavigation【发布时间】:2020-10-2620:23:22【问题描述】:我想在List中使用简单的水平ScrollView作为NavigationLink。但是,点击Scroll... 查看详情
滚动总是从 ScrollView 的顶部开始?
】滚动总是从ScrollView的顶部开始?【英文标题】:ScrollalwaysstartonthetopinScrollView?【发布时间】:2011-03-3009:55:56【问题描述】:我有一个UITableView,所有行都导航到其他UIView,其中包括UIScrollView。有时当我导航它时,它会从视图的... 查看详情
将元素动态加载到 ScrollView
】将元素动态加载到ScrollView【英文标题】:DynamicallyloadelementstoaScrollView【发布时间】:2010-12-1820:32:30【问题描述】:我正在尝试创建动态可滚动视图。它将保留从服务器下载的元素列表。该列表可能包含数千个元素。由于这个... 查看详情
隐藏导航栏而不移动scrollView
】隐藏导航栏而不移动scrollView【英文标题】:HidenavigationbarwithoutmovingscrollView【发布时间】:2016-04-1510:48:36【问题描述】:我有一个viewController,在其中显示用于添加缩放功能的图像我在viewController和ScrollView中添加了scrollView我添... 查看详情
ScrollView 使用按钮转到特定内容
】ScrollView使用按钮转到特定内容【英文标题】:ScrollViewgoingtoaspecificcontentusingabutton【发布时间】:2016-10-0418:55:40【问题描述】:下午好我有一个视图控制器,其中包含菜单上的一些项目,当我单击其中一个项目时,我需要它直... 查看详情
如何将一个滚动视图图像选择到另一个滚动视图中?
...像选择到另一个滚动视图中?【英文标题】:HowtoselectOneScrollviewImageintoanotherScrollview?【发布时间】:2014-11-1409:58:32【问题描述】:我是iOSDevelopment的新手。在我的应用程序中包含两个Scrollview一个Scrollview大,一个是小Scrollview这里... 查看详情
Android ScrollView 自动滚动到视图底部
】AndroidScrollView自动滚动到视图底部【英文标题】:AndroidScrollViewautomaticallyscrollstothebottomoftheview【发布时间】:2016-04-2608:09:11【问题描述】:我创建了一个包含一个地图、图像和另一个文本视图的活动,并为它添加了“scrollview”... 查看详情
reactnative用scrollview简单实现吸顶隐藏导航栏
参考技术A在ScrollView顶部嵌套一个Nav导航栏和一个搜索框,stickyHeaderIndices=[1]让搜索框吸顶固定。此时已经可以实现吸顶,但还可处理一下,滑动一半便停下的情况。先给ref方便调用它的方法。onScrollEndDrag=this.onStop处理 查看详情
在页面之间隐藏时移动到 ScrollView 中的特定页面 - iOS
】在页面之间隐藏时移动到ScrollView中的特定页面-iOS【英文标题】:MovetoSpecificPageinScrollViewWhileHidingBetweenPages-iOS【发布时间】:2014-07-2313:50:36【问题描述】:我有5页的PagedUIScrollVIew。我有一个问题,当我点击一个按钮时,我需要... 查看详情
为啥模拟器中没有出现导航栏?
】为啥模拟器中没有出现导航栏?【英文标题】:WhyisthenavigationbarnotappearingintheSimulator?为什么模拟器中没有出现导航栏?【发布时间】:2018-09-1923:41:42【问题描述】:在我正在构建的应用程序中,我设置了一个导航控制器来控制... 查看详情
在 scrollView 内的 contentView 上设置约束
】在scrollView内的contentView上设置约束【英文标题】:settingconstraintsoncontentViewinsidescrollView【发布时间】:2015-09-1806:25:22【问题描述】:对于我的项目,我需要制作一个距顶部64pt高度的自定义菜单。因此,默认导航栏可见性设置为... 查看详情