UITableViewCell
'un içine bir UISwitch
içeriğinin nasıl yapıştırıldığını nasıl anlarsınız?Bir UITwitch'in bir UITableViewCell içine ne zaman eklendiğini nasıl anlarsınız?
Benim UISwitch
böyle hücresi (jenerik hücrenin) içinde kurulur:
UISwitch *mySwitch = [[[UISwitch alloc] initWithFrame:CGRectZero] autorelease];
[cell addSubview:mySwitch];
cell.accessoryView = mySwitch;
Ve böyle bir musluk algılamaya çalışıyorum (ama çalışmıyor onun):
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
NSUserDefaults *prefs;
if(indexPath.section == 1){
switch(indexPath.row)
{
case 0:
NSLog(@"Tapped Login Switch");
break;
default:
break;
}
}
}
Dave DeLong her anahtar için bir çözüm olarak bir eylem belirlediğimi önerdi. Bir sorun
-(IBAction)switchToggled1:(id)sender {
NSUserDefaults *prefs;
NSLog(@"Tapped Login Switch");
prefs = [NSUserDefaults standardUserDefaults];
if(at_login){
[prefs setObject:@"NO" forKey:@"autotweet_login"];
at_login = NO;
}else{
[prefs setObject:@"YES" forKey:@"autotweet_login"];
at_login = YES;
}
}
anahtarı AÇIK Torna değildir:
UISwitch *mySwitch = [[[UISwitch alloc] initWithFrame:CGRectZero] autorelease];
[mySwitch addTarget:self action:@selector(switchToggled2:) forControlEvents: UIControlEventTouchUpInside];
if(at_songs){
[mySwitch setOn:YES animated:NO];
}
[cell addSubview:mySwitch];
cell.accessoryView = mySwitch;
Ve aday zaman bilmek için aşağıdaki: Ben anahtarını ayarlamak için aşağıdaki yaptı. ŞİMDİ sorunu, UISwitch KAPALI olarak ayarlandığında, bir nedenden dolayı, eylemin iki kez çağrılmasıdır (Ve 1 musluk için 2 NSLog aldım).
eylem anahtar off konumuna yalnızca tek bir dokunuşla için İKİ KEZ adlandırılan oluyor Neden ? Nasıl düzeltebilirim?
Teşekkürler. Etiket özelliğini kullanmak yerine, her bir anahtar için belirli bir eylem (switchToggled1, switchToggled2) oluşturdum. Ama bir sorun var: Düğmeye bir kez dokunduğumda, bir sebepten dolayı eylem iki kez çağrılır. Neden iki kez çağrılmalı? (GÜNCELLEME: Anahtarın KAPALI konuma getirilmesi, eylemi iki kez çağırır, AÇIK konuma getirildiğinde, eylem sadece bir kez çağırılır) – RexOnRoids
Yukarıdaki örnek kodda @selector NOT @selection olmalıdır. Bu bana zamanın yaklaşık yarım saatini anladım. –
@Chuck whoops! bunun için üzgünüm. Bu, bir tarayıcıda kod yazmanın olumsuz tarafıdır ... –