Обновление и сохранение нескольких значений UISlider, отображаемых в UITableView в приложении Core Data - PullRequest
0 голосов
/ 17 октября 2011

Я новичок, поэтому любые предложения по следующей проблеме, с которыми я сталкиваюсь, будут оценены.

У меня есть приложение, в котором вы вводите несколько элементов, а затем в последующем просмотре таблицы они все загружаются иЯ могу присвоить каждому элементу значение, используя uislider.

Я знаю, как отслеживать и сохранять значения, если знаю точное количество элементов, которые у меня будут, но с учетом того, что количество значений uislider, которые я должен отслеживать, зависитпо количеству введенных элементов я не уверен, куда идти.

Пока в моем методе sliderValueChanged есть следующее, которое позволяет мне отслеживать каждое подпредставление uislider:

- (IBAction)sliderChangedValues:(id)sender {
      UISlider *slider = (UISlider *)sender;
      CGPoint correctedPoint = 
      [slider convertPoint:slider.bounds.origin toView:self.tableView];    
      NSIndexPath *indexPath = 
      [self.tableView indexPathForRowAtPoint:correctedPoint];
      NSLog(@"Using slider in row %d", indexPath.row);
}

Вот мой метод cellForRowAtIndexPath для загрузки ячейки:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath {   

Criteria *myCriteria = [criteriasRankingArray objectAtIndex:indexPath.row];


static NSString *CellIdentifier = @"CriteriaRankingCell";

OptionsDetailViewCell *cell = (OptionsDetailViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {
    [self.cellNib instantiateWithOwner:self options:nil];
    cell = optionsCell;
    self.optionsCell = nil;

}

cell.criteriaRankSlider.minimumValue = 1.00;
cell.criteriaRankSlider.maximumValue = [criteriasRankingArray count];
cell.criteriaRankSlider.continuous = YES;


cell.criteriaNameLabel.text = [NSString stringWithFormat:@"%@", myCriteria.criteriaName];
cell.criteriaRankSlider.value = [myCriteria.criteriaRank floatValue];


return cell;
}

Как мне отслеживать каждое значение, а затем, где я должен установить значение каждого ползунка и сохранить в контексте?

1 Ответ

2 голосов
/ 17 октября 2011

Ты почти у цели.В вашем методе sliderChangedValues добавьте следующее:

Criteria *myCriteria = [criteriasRankingArray objectAtIndex:indexPath.row];
myCriteria.criteriaRank = [NSNumber numberWithFloat:slider.value];

Я бы не сохранял контекст в этом методе, поскольку ползунок установлен в непрерывное состояние, что может вызвать множество сообщений сохранения.Сохраните его, когда пользователь покинет вид или другую подходящую точку.

...