【问题标题】:Embedded SegmentControl fails to respond to touch嵌入式 SegmentControl 无法响应触摸
【发布时间】:2013-02-01 16:54:20
【问题描述】:

我已经解决了 SegmentControl 没有随着我的表格视图滚动的问题。我通过将控件嵌入到我的表格视图中来做到这一点,如下所示:

UIView *headerView = [[UIView alloc] init ];
        [headerView addSubview:resultsSegment];
        self.tableView.tableHeaderView = headerView;

这很好用......

但现在我无法点击分段控件。现在它是嵌入式的,这是否意味着就用户触摸而言,它本质上是在 TableView 的后面?

关于如何使 SegmentControl 再次“可点击”有什么想法吗?

谢谢

【问题讨论】:

    标签: uiview ios6 tableview uisegmentedcontrol


    【解决方案1】:

    段控件不在 tableView 后面。它在 tableView 上。

    要使segmentControl 再次可点击,您需要设置所有segmentControl 属性。这是来自网络的一些示例代码。

    NSArray *itemArray = [NSArray arrayWithObjects: @"One", @"Two", @"Three", nil];
    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray];
    segmentedControl.frame = CGRectMake(35, 200, 250, 50);
    segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;
    segmentedControl.selectedSegmentIndex = 1;
    [segmentedControl addTarget:self
                         action:@selector(pickOne:)
               forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:segmentedControl];
    

    【讨论】:

    • 我已经使用属性检查器来设置所有这些参数。该段有效,只是在滚动时不会停留在原处。添加代码并没有什么不同。
    • 好的,看起来你解决了。为了澄清,您需要将控件保留在 tableView 上方,以便在滚动时保持原位。将控件添加到 tableView 标头使控件随 tableView 滚动。祝你好运。
    • 我现在有这个问题,很奇怪:stackoverflow.com/questions/14918055/…
    【解决方案2】:

    感谢@eddieios,我确实解决了问题......通过删除我在原始答案中引用的大部分代码。

    当我使用情节提要和属性检查器设置大部分参数时,我发现这是有效的代码:

       resultsSegment.frame = CGRectMake(50, 100, 250, 40);
       [self.tableView addSubview:resultsSegment];
    

    第一行只是让段控制器的尺寸变大了,第二行不仅允许我滚动并将段控制器保持在相同的位置,而且还可以使用它!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      • 1970-01-01
      • 2021-10-31
      相关资源
      最近更新 更多