У меня есть таблица, где каждая ячейка имеет UISwitch
, когда я выбираю ячейку, я могу переключить UISwitch
, когда я выбираю следующую ячейку в виде таблицы, я не должен быть в состоянии переключить его или даже если я хочу переключить его, ранее выбранный переключатель должен быть отключен с помощью UIAlertView
, так что в принципе только один UITableViewCell
должен быть включен для переключения.Только один UISwitch должен иметь возможность переключаться в UITableviewCell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *[email protected]"cellIdentifier";
PPtableCell *cell=(PPtableCell*)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell==nil)
{
cell=[[PPtableCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
cell.remedyImage.image=[[remedyArray objectAtIndex:indexPath.row]objectForKey:@"RemedyImageDic"];
cell.remedyTextLabel.text=[[remedyArray objectAtIndex:indexPath.row]objectForKey:@"RemedyTxtDic"];
cell.remedyLabel.text=[[remedyArray objectAtIndex:indexPath.row]objectForKey:@"RemedyName"];
cell.remedyID=[[[remedyArray objectAtIndex:indexPath.row]objectForKey:@"RemedyID"]intValue];
cell.frequency = [[[remedyArray objectAtIndex:indexPath.row]objectForKey:@"RemedyFrequency"]intValue];
cell.symptomIDNo =[[[remedyArray objectAtIndex:indexPath.row]objectForKey:@"SymptomID"]intValue];
// cell.textLabel.text = [[notify objectAtIndex:indexPath.row] objectForKey:@"notifyData"];
// Specific Background Image Depending upon the Row
if (indexPath.row==0)
{
cell.backgroundCellImage.image=[UIImage imageNamed:@"top-cell.png"];
}
else if (indexPath.row==remedyArray.count-1)
{
cell.backgroundCellImage.image=[UIImage imageNamed:@"bottom-cell.png"];
}
else
{
cell.backgroundCellImage.image=[UIImage imageNamed:@"middle-cell.png"];
}
if ([indexPath isEqual:remedySelectedIndexPath])
{
cell.isZoomedIn = YES;
}
else
{
cell.isZoomedIn = NO;
}
return cell;
}
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if(tableView==remedyTableView)
{
PPtableCell *cell = nil;
cell=(PPtableCell*)[tableView cellForRowAtIndexPath:indexPath];
cell.selectionStyle=UITableViewCellSelectionStyleNone;
CGSize maximumLabelSize=CGSizeMake(320.0,100.0);
CGSize expectedLabelSize=[cell.remedyTextLabel.text sizeWithFont:cell.remedyTextLabel.font constrainedToSize:maximumLabelSize
lineBreakMode:cell.remedyTextLabel.lineBreakMode];
if (expectedLabelSize.height > 17 || expectedLabelSize.width > 260.0)
{
if ([indexPath isEqual:remedySelectedIndexPath])
{
remedySelectedIndexPath = nil;
[remedyTableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
}
else
{
oldSelectedIndexPath=remedySelectedIndexPath;
remedySelectedIndexPath=indexPath;
if (oldSelectedIndexPath==nil)
{
[remedyTableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:remedySelectedIndexPath] withRowAnimation:UITableViewRowAnimationNone];
}
else
{
[remedyTableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:oldSelectedIndexPath,remedySelectedIndexPath,nil] withRowAnimation:UITableViewRowAnimationNone];
}
}
}
}
}
Вот код, который имеет дело с UISwitches:
(IBAction)notification:(id)sender {
if (sender == notifyMe) {
if(notifyMe.isOn == YES) {
toggle = YES;
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:notifyMe.on forKey:@"switchValueKey"];
[defaults synchronize];
NSLog(@"Notification is ON");
}
} else {
toggle = NO;
}
}
if ([cellDelegate respondsToSelector:@selector(notificationReqd:)]) {
[cellDelegate notificationReqd:self];
}
}
Каков твой вопрос?Вы включили некоторый код таблицы, но ничего с UISwitches в нем - вам, возможно, повезло бы получить ответ с конкретным вопросом и тем, что вы уже пробовали в коде. –
Я пытаюсь понять, как добавить uiswitches в tableviewcell – orgami