Ios 如何在带有代码的UILabel下放置UITableView

Ios 如何在带有代码的UILabel下放置UITableView,ios,iphone,objective-c,uitableview,Ios,Iphone,Objective C,Uitableview,我写了一个带有UILabel和气象站名称的代码。后来,我添加了代码,将UITableView与此网站解释的网格视图放在一起 问题是,现在表格视图显示在所有屏幕中,并且无法看到标签 我如何使元素按此顺序排列 ui标签 UITableView 谢谢 1带笔尖: 如果您使用nib,您可以简单地调整标签和表视图的大小/布局,以便它们按需要定位。UITableView可以制作成任意大小,占据屏幕的任意部分 2没有笔尖 创建/分配/初始化标签和表,然后将它们添加到视图中: [self.view addSub

我写了一个带有
UILabel
和气象站名称的代码。后来,我添加了代码,将
UITableView
与此网站解释的网格视图放在一起

问题是,现在表格视图显示在所有屏幕中,并且无法看到标签

我如何使元素按此顺序排列

  • ui标签
  • UITableView
  • 谢谢

    1带笔尖: 如果您使用nib,您可以简单地调整标签和表视图的大小/布局,以便它们按需要定位。UITableView可以制作成任意大小,占据屏幕的任意部分

    2没有笔尖 创建/分配/初始化标签和表,然后将它们添加到视图中:

    [self.view addSubview:myTableView];
    [self.view addSubview:myLabel];
    
    神奇的一步是,您需要设置标签和表视图的框架。这是一种真正的习惯,因此如果没有更多的指导,我无法帮助您,但它可能看起来像这样:

    // the number 10 is used for padding purposes
    CGSize labelWidth = CGSizeMake(self.view.frame.size.width-20, 1000.0f);
    CGSize textSize = [myLable.text sizeWithFont:myLable.font constrainedToSize:labelWidth lineBreakMode:UILineBreakModeWordWrap];
    myLable.frame = CGRectMake(10, 10, labelWidth.width, textSize.height);
    
    
    myTableView.frame = CGRectMake(0, myLable.frame.origin.y+10, self.view.frame.size.width, self.view.frame.size.height - (myLable.frame.origin.y+10));
    
    请注意,计算框架可以通过多种方式完成。此外,您可能还必须手动重新计算旋转的帧


    希望这有助于好运

    根据我在评论中提出的问题的答案,有几个答案

  • 如果希望无论是否滚动tableview,标签始终位于顶部,请确保使用的是UIViewController实例,然后创建两个视图。适当设置框架,然后将标签视图和表视图作为子视图添加到主视图中
  • 如果你想滚动标签,那就更容易了。UIViewController仍然可以是UITableViewController的子类。UITableView有一个名为tableHeaderView的属性。myTableView.tableHeaderView=labelView
    你可以像瑞秋说的那样

    [self.view addSubview:myTableView];
    [self.view addSubview:myLabel];
    
    或者在放置它之后

    [self.view bringSubviewToFront:myTableView]
    

    如何创建UITableView?你用过InterfaceBuilder吗?你是用代码做的吗?您的视图控制器是UIViewController或UITableViewController的实例吗?此外,您是否希望标签在向下滚动tableview时向上滚动,还是希望标签始终位于顶部?是否确实希望直接在表格顶部绘制标签?换句话说,是否希望标签部分隐藏表?或者你真的想在桌子上面画标签?换句话说,您是否希望该标签显示在屏幕的上方,而不是桌子的上方?无论是否有笔尖,如果他使用UITableViewController创建视图,这都不起作用。UITableViewController的view属性是UITableView的实例。“bringtosuperview”这是什么类的方法?