gpt4 book ai didi

iphone - 构建 iPhone/iPad 应用程序 View

转载 作者:行者123 更新时间:2023-12-03 19:23:15 26 4
gpt4 key购买 nike

我对要构建的应用程序有一个想法,并且对 iPhone/iPad 开发不熟悉(但对使用其他语言/框架(例如 .NET 和 Java)进行开发并不陌生)。我想在屏幕上布局一些 View ,以便它们从不同的方向动画(滑入)到它们的位置。

问题是关于应用程序的结构,如果我在屏幕上有 4 个矩形区域,其中包含业务数据,例如联系人(姓名、照片等...),并且它们都占用不同的宽度屏幕(假设第一个联系人占据屏幕的一行,但接下来的 2 个联系人分别占据下一行宽度的一半,依此类推)。

我应该为不同大小的联系人 View 创建一个自定义 View (即 LargeCustomView 和 SmallCustomView,以及我制作的任何其他特殊类型),还是应该全部是一种类型,例如可以拉伸(stretch)以适合设计的 CustomerDetailsView时间?

另外,如果一个屏幕上有同一个自定义 View 的 3 个不同实例,那么 View Controller 也有 3 个实例吗?我对为 View 背后的数据提供动力有点困惑,有人可以帮我解释一下吗?我是否只需在 View Controller 上为每个实例设置属性(例如实例变量 ContactForView)?

感谢您提供的任何帮助

干杯,

标记

最佳答案

Should I create a custom view for the different sized contact views, (i.e. LargeCustomView and SmallCustomView, and any other special type that I make) or should it all be one type, say, CustomerDetailsView which could be stretched to fit at design time?

我想这个问题只有你能回答。如果 UIView 自动调整大小蒙版足以适应两种布局,您可能应该只选择一个类。如果这还不够,您可以重写layoutSubviews以适应不同的大小,或者使用一个公共(public)父类(super class)来包含逻辑和两个子类来执行不同的布局。

Also, if there were, say, 3 different instances of the same custom view on the one screen, are there 3 instances of the view controller also?

由于 UIViewController 的工作方式,Apple 通常建议每个屏幕不要使用多个 View Controller 。来自文档:

You should not use view controllers to manage views that fill only a part of their window—that is, only part of the area defined by the application content rectangle. If you want to have an interface composed of several smaller views, embed them all in a single root view and manage that view with your view controller.

否则,设备旋转之类的事情可能会变得棘手,因为非全屏的 View Controller 可能会对此类事件做出不同的 react ,而 Apple 的 UIViewController 并不是为此而编写的。然而,没有人阻止你编写自己的 View Controller (从 NSObject 派生,而不是从 UIViewController),所以这就是我的建议:如果 View 非常复杂,请编写一个为其定制 Controller 类,但坚持每个屏幕一个 UIViewController。

关于iphone - 构建 iPhone/iPad 应用程序 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2753128/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com