视图数组(具有 UIImage 和 3 个按钮的视图):是不是需要自定义视图/drawRect?
Posted
技术标签:
【中文标题】视图数组(具有 UIImage 和 3 个按钮的视图):是不是需要自定义视图/drawRect?【英文标题】:An array of views (views that have an UIImage and 3 buttons): Is a custom view/drawRect needed?视图数组(具有 UIImage 和 3 个按钮的视图):是否需要自定义视图/drawRect? 【发布时间】:2011-06-21 02:09:29 【问题描述】:我是否需要创建一个自定义视图(即,我覆盖 drawRect 的 UIView 的子类)才能最终创建一个包含这些自定义视图的数组?因为我最终想制作一个实现页面控制并在单独页面上显示多个视图(即自定义视图数组)的滚动视图。视图只是三个按钮上方的 UIImage。并且一个视图的图像对于另一个视图(例如,电子闪存卡)是不同的。
【问题讨论】:
【参考方案1】:看起来您不需要自定义视图来覆盖drawRect:
,因为您希望使用单个图像视图和三个按钮来构建集合视图。但是,创建一个这样可以通过命名属性访问子视图并没有什么坏处。例如,customObject.imageView
和 customObject.firstButton
。作为一个单元,创建一个单元是有意义的,因为跟踪所有图像视图和按钮会很麻烦,否则您最终会添加到滚动视图中。
【讨论】:
谢谢迪帕克。你是说我不需要覆盖 drawRect: 即使我做一个自定义视图?因为如果不是那是我更愿意做的。我只是不确定如何在不覆盖 drawRect 的情况下创建自定义视图:(即,在自定义视图中使用什么其他方法)。 糟糕!没关系。我可以从 initWithFrame: 中做到这一点,对吗? :-) 再次感谢迪帕克 抱歉回复晚了。是的,大多数情况下您可以在initWithFrame:
中执行此操作,您可以在其中为每个子视图分配框架并设置它们的自动调整大小掩码,以便它们可以响应自定义视图的框架大小的变化并相应地进行调整。如果您认为需要根据某些参数更改布局,则必须实现layoutSubviews
。当您更改该参数时,您只需调用setNeedsLayout
。
至于drawRect:
,默认实现什么都不做。因此,如果需要,您也可以什么都不做。只是确认你需要什么。
我想到的另一个想法是,如果三个按钮以相同的方式影响图像。您应该考虑将它们放在工具栏中,并根据屏幕上的任何图像处理该图像。这样,您甚至可以在这种情况下消除自定义视图。这只是一个建议,因为我不知道你到底想做什么。以上是关于视图数组(具有 UIImage 和 3 个按钮的视图):是不是需要自定义视图/drawRect?的主要内容,如果未能解决你的问题,请参考以下文章
在两个失去值的 ViewController 之间传递 UIImage 数组
我想通过单击按钮来更改 UIButton 和 UIImage 视图。但是 UIButton 和 Image 视图的图像是不同的[重复]