UISlider不会在原型单元格中滑动

时间:2015-12-28 06:47:17

标签: ios objective-c uitableview ios9 uislider

我在Storyboard的视图控制器中设计了一个原型单元格,但不幸的是单元格中的UISlider没有滑动。

注意: - 此故事板已启用Autolayout。

设计: -

enter image description here

以下是代码:以在UITableview

中呈现单元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell;
    if(indexPath.row!=self.arrSelectRecipientsImages.count-1 )
    {

        cell = [tableView dequeueReusableCellWithIdentifier:@"selectReciptenceTabCell" forIndexPath:indexPath];

    }
    else
    {
        cell = [tableView dequeueReusableCellWithIdentifier:@"selectNearbyTabCell" forIndexPath:indexPath];
        UISlider *sliderNearby = (UISlider *)[cell.contentView viewWithTag:199];
        lblDistance = (UILabel *)[cell.contentView viewWithTag:190];
        sliderNearby.userInteractionEnabled = YES;
        [sliderNearby setThumbImage:[UIImage imageNamed:@"NearbyCircle"] forState:UIControlStateNormal];
        [sliderNearby addTarget:self action:@selector(sliderNearbyAction:) forControlEvents:UIControlEventValueChanged];
  }
return cell;
}

3 个答案:

答案 0 :(得分:1)

我认为代码工作正常。 也无需设置用户交互。

以下是示例代码,您可以从中获得帮助。它适用于autolayout。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];

    UILabel *lblTitle = (UILabel *)[cell viewWithTag:100];
    lblTitle.text = @"Hi";

    UISlider *slider = (UISlider *)[cell viewWithTag:101];
    slider.value = 0.2;
    slider.tag = indexPath.row;
    [slider addTarget:self action:@selector(sliderNearbyAction:) forControlEvents:UIControlEventValueChanged];
    return cell;
}

- (void)sliderNearbyAction:(UISlider *)sender{
    NSLog(@"Slider %ld Value : %.2f",(long)sender.tag, sender.value);
}

OUTPUT with Log:

enter image description here

Autolayout屏幕截图:

enter image description here

答案 1 :(得分:0)

嗯,问题非常愚蠢,我没有为不同索引路径中的单元格提供高度。这就是为什么最后一个单元格即滑块单元格正在显示但它的高度为30,所以在该区域之外的任何敲击或手势都是没有回应。

答案 2 :(得分:0)

问题可能出在isUserInteractionEnabled中。如果您有任何可交互元素作为单元的子视图(而不是contentView的子视图),则需要设置

cell.contentView.isUserInteractionEnabled = false

该单元格。