【发布时间】:2012-02-29 07:03:17
【问题描述】:
我想知道创建视图的最佳方法是什么,例如以下link 左侧的视图?
我知道如何制作使用故事板中的模板的应用程序,但在创建自定义视图时有点迷失方向。这一切都是在运行时使用代码创建的吗?我是否需要为每个部分(礼物、生日、...)添加一个子视图到我的主视图中?任何创建这种视图的一般方法都值得赞赏。
【问题讨论】:
标签: iphone objective-c ios ios5
我想知道创建视图的最佳方法是什么,例如以下link 左侧的视图?
我知道如何制作使用故事板中的模板的应用程序,但在创建自定义视图时有点迷失方向。这一切都是在运行时使用代码创建的吗?我是否需要为每个部分(礼物、生日、...)添加一个子视图到我的主视图中?任何创建这种视图的一般方法都值得赞赏。
【问题讨论】:
标签: iphone objective-c ios ios5
在顶层看起来他们有一个UIToolbar 和一个UITableView 或一个UIScrollView。他们在工具栏中使用了一些自定义图形;可能他们已经实现了自己的工具栏类。
表格视图可能正在使用自定义UITableViewCell 子类。它使用可变高度行(通过在委托中定义tableView:heightForRowAtIndexPath: 方法)。他们可能只是使用滚动视图而不是表格视图,但我假设它是本次讨论的滚动视图。
每个单元格似乎至少有三个子视图:一个用于绘制单元格的标题栏,一个用于绘制单元格的内容,一个UIPageControl 用于在内容下方绘制页面点。
单元格的内容部分看起来可能是一个滚动视图,带有一些用于绘制图像的子视图 (UIImageView) 和标签 (UILabel)。滚动视图的子视图对于不同的表格视图单元格是完全不同的。
您可以使用 nib 来布置这样的界面。我可能会使用四个笔尖:一个用于带有工具栏和表格视图的顶层,一个用于表格视图单元格的笔尖,一个用于礼品布局的笔尖(UILabel 超过UIImageView),和一个人/日期的笔尖
布局(在三个UILabels 的左侧有一个UIImageView)。
您需要在代码中设置一些属性。例如,假设您有一个用于表格视图单元格的整体布局的笔尖。它可能有这样的视图层次结构:
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
当您加载此笔尖以用于“浏览礼物”单元格时,您需要设置白色背景视图图层的阴影属性,因为您无法在笔尖中执行此操作。您需要在适当的视图上设置条带的颜色、图标和单元格的标题文本。您需要将内容添加到滚动视图(这可能涉及为每个内容项加载另一个 nib)。您需要在页面控件上设置页数。
【讨论】: