【问题标题】:Problem in inserting segmented control to header view将分段控件插入标题视图的问题
【发布时间】:2013-07-04 05:39:06
【问题描述】:

我正在尝试在我的表格视图中添加 UISegmentedControl。我的表格视图中有两个部分,我希望将分段控件放置在第二部分中。在我的实现中,我按如下方式覆盖 viewForHeaderInSection。

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

if (section == 1)
{   
    UIView *headerView = [[[UIView alloc] initWithFrame:CGRectMake(10, 0,tableView.bounds.size.width, 10)] autorelease];
    NSArray *segmentTextContent = [NSArray arrayWithObjects:NSLocalizedString(@"Singles", @""), NSLocalizedString(@"Everyone", @""),nil];
    UISegmentedControl *segmentedControl = [[[UISegmentedControl alloc] initWithItems:segmentTextContent] autorelease];
    segmentedControl.selectedSegmentIndex = 1;
    segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
    segmentedControl.frame = CGRectMake(0, 0, tableView.bounds.size.width+10, 20);
    [segmentedControl addTarget:self action:@selector(loadTable:) forControlEvents:UIControlEventValueChanged];
    [headerView addSubview:segmentedControl]; 
    return headerView;
}
else
{
    UIView *headerView = [[[UIView alloc] initWithFrame:CGRectMake(10, 0,tableView.bounds.size.width, 10)] autorelease];
    return headerView;
}

}

我的问题是,一旦我选择了一个特定的片段,它似乎就没有被选中。即它没有像预期的那样变暗。我之前已将分段控件放置在导航栏中,并在选择后按预期为分段着色。

任何帮助将不胜感激。 谢谢

【问题讨论】:

  • 点击片段后,选择(深色)是否消失?在这种情况下,您可能需要检查分段控件的“瞬时”属性。
  • 对,你不要写或指定“瞬时” UISegmentControl 的布尔属性。

标签: iphone


【解决方案1】:

这是一个迟到的反应,但我遇到了同样的问题并找出了问题所在。在上面的代码中,每次 tableView 调用 reloadData 时都会重新创建 headerView (这在我基于对 segmentedControl 的单击来处理数据之后发生),因此分段控件回到其原始状态,并且触摸显然不是反映。

为了解决这个问题,我将 segmentedControl 设为 ivar,并检查它是否已经存在。如果是这样,那么只需调用

[headerView addSubview: segmentedControl];

否则进行控件的整个设置。

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    你有没有找到答案?我实现了几乎相同的东西并且效果很好。我的猜测是,您控制的大小超出了视图的范围。

    CGRectMake(0, 0, tableView.bounds.size.width+10, 20)
    

    我相信这会导致控件在所有情况下都无法接收触摸事件。

    【讨论】:

      猜你喜欢
      • 2019-04-27
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多