iOS 5 创建自定义视图

问题描述 投票:0回答:1

我想知道创建视图(例如以下链接左侧的视图)的最佳方法是什么?

我知道如何制作使用故事板中模板的应用程序,但在创建自定义视图时有点迷失了指南。这一切都是在运行时使用代码创建的吗?我是否需要在主视图中为每个部分(礼物、生日……)添加一个子视图?任何创建此类视图的通用方法都值得赞赏。


(来源:fastcodesign.com

iphone objective-c ios ios5
1个回答
6
投票

在顶层,看起来他们有一个

UIToolbar
和一个
UITableView
或一个
UIScrollView
。他们在工具栏中使用了一些自定义图形;可能他们已经实现了自己的工具栏类。

表格视图可能使用自定义的

UITableViewCell
子类。它使用可变高度行(通过在委托中定义
tableView:heightForRowAtIndexPath:
方法)。他们可能只是使用滚动视图而不是表格视图,但我会假设它是本次讨论的滚动视图。

每个单元格似乎至少有三个子视图:一个用于绘制单元格的标题栏,一个用于绘制单元格的内容,以及一个

UIPageControl
用于在内容下绘制页面点。

单元格的内容部分看起来可能是一个滚动视图,有一些子视图用于绘制图像(

UIImageView
)和标签(
UILabel
)。对于不同的表视图单元格,滚动视图的子视图有很大不同。

您可以使用笔尖布局这样的界面。我可能会使用四个笔尖:一个用于工具栏和表格视图的顶层,一个用于表格视图单元格的笔尖,一个用于礼物布局的笔尖(在

UILabel
上有一个
UIImageView
),和一个笔尖代表人物/日期 布局(三个
UIImageView
左侧有一个
UILabel
)。

您需要在代码中设置一些属性。例如,假设您有一个笔尖用于表视图单元格的整体布局。它可能有这样的视图层次结构:

UITableViewCell (or subclass)
    UIView to provide the colored stripe across the top
        UIImageView for the icon
        UILabel for the title (“Browse Gifts”, “Birthdays”, etc.)
        UIButton for the disclosure indicator
    UIView to provide the white background with shadow
        UIScrollView to hold the main content of the cell
        UIPageControl

当您加载此笔尖以用于“浏览礼物”单元格时,您需要设置白色背景视图图层的阴影属性,因为您无法在笔尖中执行此操作。您需要在适当的视图上设置条纹的颜色、图标和单元格的标题文本。您需要将内容添加到滚动视图(这可能涉及为每个内容项加载另一个笔尖)。您需要在页面控件上设置页数。

© www.soinside.com 2019 - 2024. All rights reserved.