Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
反向工程iOS天气应用程序UI组件_Ios_Iphone_User Interface_Uiscrollview - Fatal编程技术网

反向工程iOS天气应用程序UI组件

反向工程iOS天气应用程序UI组件,ios,iphone,user-interface,uiscrollview,Ios,Iphone,User Interface,Uiscrollview,我正试图写下iOS天气应用程序的摘要。我感兴趣的主要组件在下图中标记为1、2、3、4和5 用户界面应按以下方式获取: 具有以下功能的ViewController: 1-是一个UILabel 2-是一个UIButton,可更改文本或隐藏以显示第二个按钮 3-带水平滚动的UIScrollView?我猜它有自定义的单元格类型 4-同上,但为垂直单元格 以及页面视图控制器(5) 情节提要创建(希望遵循): 1-4-属于同一个ViewController 5-在这个层次之上 怀疑: 我的解释正

我正试图写下iOS天气应用程序的摘要。我感兴趣的主要组件在下图中标记为1、2、3、4和5

用户界面应按以下方式获取:

具有以下功能的ViewController:

  • 1-是一个UILabel
  • 2-是一个UIButton,可更改文本或隐藏以显示第二个按钮
  • 3-带水平滚动的UIScrollView?我猜它有自定义的单元格类型
  • 4-同上,但为垂直单元格
以及页面视图控制器(5)

情节提要创建(希望遵循):

  • 1-4-属于同一个ViewController
  • 5-在这个层次之上
怀疑:

  • 我的解释正确吗
  • 是否为3/4垂直视图控制器
  • 使用interface/story builder实现此功能有任何缺点吗

在我继续之前,我应该声明一个显而易见的事实:天气应用程序是封闭源代码的!因此,所有这些都是经过教育的猜测

我的解释正确吗?
不完全是。我猜3和4都不是普通的
UIScrollView
s,而是可能的s。这使得水平滚动(对于3)以及布局和完全自定义单元格变得简单。另外,我怀疑3是4的子视图,因为它会随着4的内容上下滚动

您会注意到滚动时1和2的移动方向与3和4相同,但速度不同。这意味着它可能是一个与来自4滚动视图的回调相关联的受驱动动画

是否有3个和4个垂直视图控制器?
可能不会。在我看来,在这里使用子视图控制器会有点过头

使用界面生成器/故事板实现此功能是否有任何缺点?

对我绝对不建议这样做。这些行为是相当定制的,我保证您最终会发现自己被迫编写大量的布局和动画代码。如果你从故事板开始,可以说,你最终会得到两个真相来源,所以我就不麻烦了。

你将很难用故事板制作一些奇特的动画/视差。@IanMacDonald谢谢!我来自Cocos2D,所以我更喜欢以编程方式做事。你的评论也让我朝着标准iOS/UIKit的这个方向发展:-)答案太多了。我明天会试着去做,然后很可能会接受。我很感激你对interface builder的评论。我的印象是,编程更容易,因为我可以更轻松地处理子视图堆栈(例如,用于背景图像)。你的回答证实了这可能是一条出路。在这方面有什么文章/很好的参考/指导吗?什么时候最好使用界面生成器?对于小型/简单的应用程序?我有点喜欢/更喜欢以编程的方式做事。从(非常)高的层面上看,我发现IB只对没有很多自定义UI行为的应用程序有用。它无法帮助您完成详细的自定义UI工作,例如使用
CALayers
或不寻常的布局约束。我恰好有很好的理由相信苹果根本不在内部使用它。但我建议你自己做研究:谷歌“我应该使用故事板吗?”谢谢你的回复和分享你的经验。