2012-02-29 126 views
2

我想知道创建视图的最佳方法是什么,例如以下link左侧的视图?iOS 5创建自定义视图

我知道如何制作使用故事板中模板的应用程序,但在创建自定义视图时却失去了指导原则。它是否都在运行时使用代码创建?我需要为每个部分添加一个子视图(礼物,生日,...)到我的主视图吗?任何创建这种观点的一般方法都是值得赞赏的。

example interface

回答

6

在顶层,它看起来像他们有一个UIToolbarUITableViewUIScrollView。他们在工具栏中使用了一些自定义图形;可能他们已经实现了自己的工具栏类。

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

每个单元格似乎至少有三个子视图:一个绘制单元格的标题栏,一个绘制单元格的内容,并在内容下绘制页面点。

单元格的内容部分看起来像是一个滚动视图,有些子视图可以绘制图像(UIImageView)和标签(UILabel)。对于不同的表格视图单元,滚动视图的子视图是完全不同的。

您可以使用笔尖布局这样的界面。我可能会使用四个笔尖:一个用于工具栏和桌子视图的顶层,一个用于桌子视图单元的笔尖,一个用于礼物布局的笔尖(其大于UIImageView),一个笔尖用于人物/日期 布局(其中UIImageView在三个UILabel s的左侧)。

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

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 

当加载此笔尖使用您的“浏览礼品”细胞,你需要设置白色背景视图的层的阴影属性,因为你不能在笔尖做那个。您需要在适当的视图上设置条纹的颜色,图标和单元格的标题文本。您需要将内容添加到滚动视图(可能需要为每个内容项目加载一个笔尖)。您需要设置页面控件上的页面数量。

+0

感谢您的完整解释。我不知道这些单独的部分实际上是表 – 2012-02-29 09:34:52

+0

你有没有可能知道什么是最好的方法来参考? 有人可能会说我需要一个主视图和三个具有一行/单元的通用静态表。 有人可能会说最好的方法是用横幅和容器创建自定义视图并动态添加它。我很新,所以任何帮助或引用表示赞赏。在iOS 5的自定义视图的最佳方法中找不到任何具体内容 – 2012-03-02 06:37:21