Yukarıdaki cevaplardan hiçbiri sorunu gerçekten doğru bir şekilde ele almıyor. Bunun nedeni, hücre seçimini devre dışı bırakmak istiyoruz, ancak mutlaka hücre içindeki alt görüntülemeleri değil.
Benim durumumda, satırın ortasında bir UISwitch sunuyordum ve satırın geri kalanı için (boş olan) seçimi devre dışı bırakmak istedim ama anahtar için değil! Bunu yapmanın uygun yolu bu nedenle yöntemde
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
formun bir ifadesi
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
belirli bir hücrenin seçimini devre dışı bırakır, aynı zamanda kullanıcının anahtarı değiştirmesine ve böylece uygun seçiciyi kullanmasına izin verir. Birisi kullanıcı etkileşimi yoluyla kullanıcı etkileşimini devre dışı bırakırsa bu doğru değildir.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
sadece hücreyi hazırlayan ve UISwitch ile etkileşime izin vermeyen bir yöntemdir.
Ayrıca, yöntemi kullanarak
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
formun ifadesiyle hücrenin seçimini kaldırmak için
[tableView deselectRowAtIndexPath:indexPath animated:NO];
kullanıcı hücrenin orijinal içeriğine basarken seçilen satırı gösterir.
Sadece iki sentim. Birçok kişinin bunu yararlı bulacağından eminim.