2015-07-02 5 views
0

Это мой сценарий у меня есть UIslider и Tableview мне нужно прокрутить TableView со значением ползункаUIslider прокрутки и TableView прокрутки ИОС

+0

Является ли высота ячейки фиксированной для всех ячеек? –

+0

Нет, это зависит от входной метки, каждая ячейка имеет свою собственную высоту :-( – Koushik

ответ

-1

Определение UISlider в файле .h, как

UISlider *slider; 

Добавить в корзину

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; 

в массиве numberofrowsinsection это число строк

slider.maximumValue = [array count]; 

А вот это вы хорошо идти так конечный результат будет похож на u, перемещающий ползунок, вид таблицы перемещается с ячейкой, выбранной в заданном цвете

2

Я думаю, что с помощью функции из класса UIScrollView может достичь этого.

Дайте этот код в методе @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

+0

Измените 'size: tableView.frame.size' на меньшее значение, например' CGSize (width: tableView.frame.size.width, height: 50) 'для получения лучших результатов. –

+0

Итак, что вы говорите:« Установите высоту таблицы tableViewscroll для значения ползунка и в зависимости от изменения слайдераValue прокрутки? »Получил ли я, что говорит ур? – Koushik

+1

TableView Высота прокрутки определяется количеством ячеек и их высоты (фиксированные после того, как данные загружены в ячейки). 'scrollRectToVisible (frame)' прокручивает табличное представление, чтобы показать «фрейм» (чья позиция y определяется значением «середина»). –

Смежные вопросы