【问题标题】:Adding sub view to UITableViewHeader getting wrong width?向 UITableView Header 添加子视图的宽度错误?
【发布时间】:2016-04-25 09:28:37
【问题描述】:

首先我构建一个视图添加到 tableview 作为 tableHeaderView

 UIView *mainHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 300)];

    [self.mainViewTableView setTableHeaderView:mainHeaderView];

我可以调整 mainHeaderView 的高度,但我不能调整这个 headView 的 Y 位置。

我试图添加一个子视图:

self.searchForShop = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, self.mainViewTableView.tableHeaderView.frame.size.width, 44)];
    [self.mainViewTableView addSubview:self.searchForShop];

运行app,发现subview的宽度比tableHeadView长。 做查看调试,发现子视图比tableHeadView宽16(我在iphone5s上运行)。

如何解决?

【问题讨论】:

  • 你在使用自动布局吗?

标签: ios objective-c iphone uitableview uitableviewsectionheader


【解决方案1】:

你可以这样尝试,设置tableview的宽度可能有问题,将搜索栏的宽度设置为tableview的宽度

//create a tableview
tableView=[[UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStylePlain];
[self.view addSubview:self.tableView];
self.tableView.delegate=self;
self.tableView.dataSource=self;


UISearchBar *searchBar=[[UISearchBar alloc]init];
/* option 1 ->[searchBar sizeToFit]; */
/* option 2 ->*/ searchBar.frame = CGRectMake(0, 0, self.tableView.bounds.size.width, 44); //set the width how much table view has
searchBar.delegate=self;
[self.tableView setTableHeaderView:searchBar];

【讨论】:

  • 感谢您的回答。我尝试找到选项 1,searchBar 会比 tableview 短一点。选项 2 搜索栏将只有 tableview 的 2/3 宽度与
  • 我正在尝试将我的代码移动到 viewdidappear 中,它可以正常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-06
相关资源
最近更新 更多