【问题标题】:Cocoa (Touch) for Swing Developers #1: Where Are the Layouts?面向 Swing 开发人员的 Cocoa(触摸)#1:布局在哪里?
【发布时间】:2010-05-28 03:32:18
【问题描述】:

感谢几本好书和在线帮助(包括this one),我的 iPhone SDK 和 Objective-C 学习进展很快。但是我确实有一些基本问题,因为我已经知道最终会得到回答,但如果可能的话,我宁愿现在就知道:)

  • 在 Cocoa Touch 中是否有 LayoutManager 的等价物?是使用它们,还是使用绝对定位?我在 IB 中看到了一些布局的东西,但我不确定在代码中看什么。
  • 除了使用 IB 之外,是否使用 addSubview 将 UIControls 直接添加到 UIView 实例(如 Swing 中的 add)?

这只是我刚刚想到的两个具体问题,但我希望看到任何将 Swing 概念转换为 Cocoa Touch 的方法。

【问题讨论】:

    标签: java iphone cocoa cocoa-touch swing


    【解决方案1】:

    如果您真的想编写一个像网站一样的应用程序,Three20 是开始的地方。该框架提供了一个基于 URL 的导航器组件,大致相当于一个名为 TTNavigator 的前端控制器。

    要直接回答您关于 LayoutManager 的问题,有一点是几乎所有事情都转化为对 UITableView 的创造性使用。它是如此可定制和灵活,您几乎可以做任何事情。当它发生故障时,它的父级 UIScrollView 通常是一个不错的起点,因为它具有所有加速/弹跳功能。

    第二个问题是肯定的。 UIViews 使用 - (void)addSubview:(UIView *)view 添加到 UIViews。要删除它们,请在子视图中使用 - (void)removeFromSuperview

    【讨论】:

    • 第二段和第三段很有趣……为什么提到“像网站一样编写应用程序”?只是好奇,谢谢。
    • 抱歉,我的措辞可能更好,我的意思是导航器使它更像一个集中的动作监听器
    • 好的,那么关于 UITableView 的创造性使用:这不只是 iPhone 版本中的一栏吗?我的问题是,例如,如果我有两行控件,我是否需要自己编写它们的定位代码?
    • 不一定,你可以在IB中用你设计的布局创建一个自定义的UITableViewCell,然后用NSBundle懒惰地加载它
    • 好的,我会考虑所有这些,然后在我真正知道我们在说什么的时候投票给你/标记你的最佳答案:)....谢谢!
    【解决方案2】:
    1. 很遗憾没有,因此手动布置视图是一件很痛苦的事情。就在几天前,我花了 5 个小时来布置一个视图。我考虑过建造这样的东西并将其发布给大众。
    2. 是的,你完全正确。

    【讨论】:

      猜你喜欢
      • 2014-07-23
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-26
      相关资源
      最近更新 更多