UIslider 滚动和 tableview 滚动 ios
UIslider scroll and tableview scroll ios
这是我的场景 我有一个 UIslider 和一个 Tableview 我需要使用滑块值滚动 tableview
我认为使用 UIScrollView class 中的函数可以实现这一点。
在滑块的@IBAction 方法中给出此代码:
@IBAction func setOffset(sender: AnyObject) {
let slider = sender as! UISlider
let y = tableView.contentSize.height * CGFloat(slider.value)
tableView.scrollRectToVisible(CGRect(origin: CGPointMake(0,y), size: tableView.frame.size), animated: true)
}
注意滑块范围应该是0-1
在.h文件中定义UISlider为
UISlider *slider;
这里在viewdidload中添加这个
slider = [[UISlider alloc] initWithFrame:frame];
[slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
[slider setBackgroundColor:[UIColor clearColor]];
slider.minimumValue = 0.0;
slider.maximumValue =5;
slider.continuous = YES;
slider.value = 25.0;
CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI_2);
slider.transform = trans;
[slider setBackgroundColor:[UIColor clearColor]];
[slider setThumbImage:[[UIImage imageNamed:@"XYZ.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal];
slider.translatesAutoresizingMaskIntoConstraints = YES;
[temp addSubview: slider];
定义方法 slideraction
-(void)sliderAction:(id)sender{NSIndexPath* indexPath1 = [NSIndexPath indexPathForRow:[(UISlider *)sender value] inSection:0];
[yourtableview selectRowAtIndexPath:indexPath1 animated:NO scrollPosition:UITableViewScrollPositionMiddle];
}
在 cellforrowatindexpath 中把这个放在最后
UIView *selb = [[UIView alloc] initWithFrame:CGRectZero];
[selb setBackgroundColor:[UIColor colorWithRed:255.0/255.0 green:236/255.0 blue:179/255.0 alpha:1]];
cell.selectedBackgroundView = selb;
in numberofrowsinsection 数组是行数
slider.maximumValue = [array count];
就这样你就可以开始了所以最终结果就像你移动滑块 table 视图随着以给定颜色选择的单元格移动
这是我的场景 我有一个 UIslider 和一个 Tableview 我需要使用滑块值滚动 tableview
我认为使用 UIScrollView class 中的函数可以实现这一点。
在滑块的@IBAction 方法中给出此代码:
@IBAction func setOffset(sender: AnyObject) {
let slider = sender as! UISlider
let y = tableView.contentSize.height * CGFloat(slider.value)
tableView.scrollRectToVisible(CGRect(origin: CGPointMake(0,y), size: tableView.frame.size), animated: true)
}
注意滑块范围应该是0-1
在.h文件中定义UISlider为
UISlider *slider;
这里在viewdidload中添加这个
slider = [[UISlider alloc] initWithFrame:frame];
[slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
[slider setBackgroundColor:[UIColor clearColor]];
slider.minimumValue = 0.0;
slider.maximumValue =5;
slider.continuous = YES;
slider.value = 25.0;
CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI_2);
slider.transform = trans;
[slider setBackgroundColor:[UIColor clearColor]];
[slider setThumbImage:[[UIImage imageNamed:@"XYZ.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal];
slider.translatesAutoresizingMaskIntoConstraints = YES;
[temp addSubview: slider];
定义方法 slideraction
-(void)sliderAction:(id)sender{NSIndexPath* indexPath1 = [NSIndexPath indexPathForRow:[(UISlider *)sender value] inSection:0];
[yourtableview selectRowAtIndexPath:indexPath1 animated:NO scrollPosition:UITableViewScrollPositionMiddle];
}
在 cellforrowatindexpath 中把这个放在最后
UIView *selb = [[UIView alloc] initWithFrame:CGRectZero];
[selb setBackgroundColor:[UIColor colorWithRed:255.0/255.0 green:236/255.0 blue:179/255.0 alpha:1]];
cell.selectedBackgroundView = selb;
in numberofrowsinsection 数组是行数
slider.maximumValue = [array count];
就这样你就可以开始了所以最终结果就像你移动滑块 table 视图随着以给定颜色选择的单元格移动