iPhone - 行为类似于 UIViewController 的 UIView

标签 iphone ios ipad uiviewcontroller

我需要创建一个将呈现 UIVIew 的类,并有一些代码在它准备好显示之前对其进行初始化。我需要知道 View 何时准备就绪,我的意思是,我需要像 viewDidLoad 或 viewWillAppear 这样的东西,但由于它是 UIVIew,因此缺少这些协议(protocol)。

我无法将其实现为 UIViewController,因为我不想以模态方式呈现它。它实际上是一个需要在屏幕端显示的矩形 View 。

如何声明这个类?如果类是基于 UIView 的,我没有提到的方法。

谢谢

最佳答案

有什么理由不在 UIViewinitWithFrame 方法中做这种事情?此外,您可以在 layoutSubviews 上做其他事情。 View Controller 具有 viewDidLoad,因为 View 是延迟加载的(来自 nib 或其他 - 它也有一个 loadView)。它有 viewWillAppearviewWillDisappear 因为它管理 View (顺便说一句,即使 View Controller 也由另一个 View Controller 管理 - 这些方法称为当您在 UINavigationController 或 UITabBarController 或管理 UIViewController 的此类类中拥有 Controller 时。- View 本身并没有真正管理任何东西。它所知道的只是如何绘制自己。为此,您有 layoutSubViews , drawRect

在 View 加载时做一些繁重的事情肯定会降低 UI 性能。您可能需要实现另一种设计模式,将数据值异步分配给自定义 View 的实例 - 完成后,您调用 layoutSubviewssetNeedsDisplay 进行更新 View 。

关于iPhone - 行为类似于 UIViewController 的 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7891223/

相关文章:

css - 媒体查询是否需要满足所有条件才能工作?

android - 如何在android中将自定义过滤器应用于相机流?

objective-c - 检测 UITextfield 中文本的更改

jquery - css/jquery 中的移动(触摸)设备友好下拉菜单

iphone - OpenGL ES 2.0 - vec2 数组

iphone - Objective-C:向 map 添加注释时 EXC_BAD_ACCESS

ios - 如何从一个文件控制所有导航栏?

ios - TableView 重复 youtube-api 结果

ios - 横向设置 iPhone 6 Plus 的 UIModalPresentationStyle?

iphone - 在 iphone 中选择应用内购买项目的困惑