当前位置:  开发笔记 > 运维 > 正文

UITableView头中的UIButton忽略了大多数触摸

如何解决《UITableView头中的UIButton忽略了大多数触摸》经验,为你挑选了3个好方法。

我有一个按钮,我将其添加为表视图的tableHeaderView的子视图.按钮看起来很好,并且它可以间歇性地按住它 - 但大多数情况下,它没有响应.我已经尝试将其添加为表格本身的子视图; 效果大致相同.我认为问题可能出在滚动视图的触摸拦截上,但是禁用滚动表也没有效果.

难道我做错了什么?有人遇到过这种情况么?

编辑 - 澄清一下,我说的是分组样式表中的主表头,而不是节头.认为基本上是在"联系"屏幕后建模的.



1> 小智..:

我有同样的问题.在我的例子中,我在IB中实例化了一个容器视图(在代码中作为表视图头应用),UIImageView占用了该容器的整个框架.行为不当按钮位于图像视图中.

结果我需要在IB集中设置尺寸如下...

集装箱视图:外部锚点全部打开,内部调整大小 - 全部关闭

子图像视图:所有支柱(内部和外部)

我有几个不同的表视图,都使用标题视图.有些人会正确回应触摸事件,有些则是片状的.这解决了我的问题


+1.这对我有用.我没有使用IB,因此我必须以编程方式使用`-setAutoresizingMask:`设置struts,并且我发现它只在容器上有用.内部图像控制不需要任何东西.谢谢!永远不会偶然发现这件事.

2> 小智..:

我有一个类似的问题 - 视图中的文本字段和按钮设置为表头视图,它不会响应触摸事件.setAutoResizing以编程方式为我工作.

我的控制器扩展了UITableViewController,viewDidLoad看起来像这样:

- (void)viewDidLoad
{
    [super viewDidLoad];

    MYCustomWidget *headerView = [[[NSBundle mainBundle] 
               loadNibNamed:@"MYCustomWidgetView" owner:self options:nil] 
               objectAtIndex:0];

    [headerView setAutoresizingMask:UIViewAutoresizingNone];

    self.tableView.tableHeaderView = headerView;
}

('MYCustomWidget'扩展UIView,'MYCustomWidgetView'是XIB文件).


设置AutoresizeMask为我做了.

3> August..:

我完全不同意Wisequark - 在tableHeaderView中放置一个按钮绝对没有错,包括一个不会冒你的应用程序被app Store拒绝的风险.tableHeaderView被设计为包含您选择的任何元素的任意视图.

就你的问题而言,可能是你有一个隐藏按钮的视图,或者它可能只是一个应该报告给Apple的错误.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有