【问题标题】:iOS: can not create custom view on UITableViewControlleriOS:无法在 UITableViewController 上创建自定义视图
【发布时间】:2014-09-02 18:48:32
【问题描述】:

我在做什么?
我正在通过构建应用程序来学习iOS。我的要求显示UITableViewController 上的一些交易

我需要添加header,我需要使用一些特定的信息和样式进行设计。我问iOS: How do I make custom header section for Table? 并意识到我需要自定义UIView

问题是我不能将View 拖到UITableViewController 上,XCode 不允许我这样做

有问题?
- 如果您看到这不仅会显示UIView,还会显示整个iPhone 屏幕
- 我需要在我的UITableViewController 上显示这个,现在我有什么,我怎样才能将UIView 作为标题放在我的UITableViewController 上?

【问题讨论】:

    标签: ios objective-c iphone uiview


    【解决方案1】:

    使用 UIViewController 而不是 UITableViewController

    我建议您不要使用 UITableViewController,因为据我所知几乎没有优势,而像您正在寻找的自定义视图却非常困难。

    使用 UIViewController 并将 UITableView 对象(在界面构建器中)拉到该视图上。您可以调整大小并将其放置在您喜欢的任何位置。

    记住在头文件中包含委托,如下所示,并将UITableView对象委托连接到viewController。

    @interface ViewController: UIViewController<UITableViewDelegate, UITableViewDatasource>
    

    界面构建器中 UIViewController 下面的屏幕截图,我添加了一个 UITableview 对象(此处显示为灰色)并在顶部添加了一个 UIView(棕色,以便您可以清楚地看到它)。

    这当然只是一个例子,但希望它可以帮助你理解。

    虽然在上面的屏幕截图中我使用的是故事板,但您也可以使用 Xib 来执行此操作。

    我希望这会有所帮助。

    【讨论】:

    • 这非常有用,谢谢。我从UITableViewController 切换到UIViewController
    【解决方案2】:

    您添加标签的视图是视图控制器的主视图。您需要从对象库(右下菜单)中拖出一个视图并在其中添加这些标签。然后使用 IBOutlet 将添加的视图链接到您的 ViewController。 之后,您可以将 tableView 的标题设置为添加的视图:

    self.tableView.tableHeaderView = headerView;
    

    编辑:如果你想用代码做所有事情。创建自定义标题视图并将其拖到 UITableView 上方:https://stackoverflow.com/a/8053361/2604030

    【讨论】:

    • 我是否需要在我现有的UITableViewController 上添加新的UIView(我想要我的标题)?
    • @daydreamer 是的,你必须这样做。尽量不要弄乱您添加标签的视图。
    • 我无法在 Interface Builder 中将 View 拖到 UITableControllerView,它不允许我这样做
    • 如果您当前在 Storyboard 中的 ViewController 状态,您可以用屏幕截图编辑问题吗?
    • 你还没有添加截图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 2011-05-24
    相关资源
    最近更新 更多