【问题标题】:iOS 5 Create a custom viewiOS 5 创建自定义视图
【发布时间】:2012-02-29 07:03:17
【问题描述】:

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

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

【问题讨论】:

    标签: iphone objective-c ios ios5


    【解决方案1】:

    在顶层看起来他们有一个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)。您需要在页面控件上设置页数。

    【讨论】:

    • 感谢您的完整解释。我不知道这些单独的部分实际上是表格
    • 您是否知道有关解决此问题的最佳方法的参考资料?有人可能会说我需要一个主视图和三个带有一行/单元格的通用静态表。有人可能会说,最好的方法是创建一个带有横幅和容器的自定义视图并动态添加它。我对此很陌生,因此感谢您提供任何帮助或参考。在 iOS 5 中找不到自定义视图的最佳方法的具体内容
    猜你喜欢
    • 2015-08-20
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 2015-06-12
    • 2022-08-02
    相关资源
    最近更新 更多