Benim iphone app birkaç (gruplanmış tarzı) tablolar var (sadece ekranın bir parçası üzerinde ve Interface Builder
olsa ile eklenir , alt sınıf değil UITableViewController
) zaman% 80 küçük ve ekrana sığacak. Tablo ekrana sığdığında, biraz daha temiz hale getirmek için kaydırmayı devre dışı bırakmak istiyorum. Ancak tablo ekrandan çıkarsa (daha sonra satırlar eklendiğinde), tekrar kaydırmayı etkinleştirmek istiyorum (aksi takdirde bu içeriği göremezsiniz.)
Bunu yapmanın bir yolu var mı? Anlayamıyorum. Yapmayı biliyorum:
tableView.scrollEnabled = NO;
ama emin değilim, ya da ben tablo nesne boyutu ya da bir şey bu işe almak için hesaplamak zorunda.
Güncelleme : İşte sonunda benim için çalışan çözüm:
if (table.contentSize.height < table.frame.size.height) {
table.scrollEnabled = NO;
}
else {
table.scrollEnabled = YES;
}
Bu kodu reloadData
masaya çağırdıktan sonra çalıştırın ve doğru boyutları hesaplar ve çalışıyor gibi görünüyor.
table.frame.size.height
Interface Builder
ekranda görüntülenen nesnenin gerçek boyutudur (bunu içinde görebilirsiniz ), oysa table.contentSize.height
yükseklik, altbilgi ve toplanan her hücrenin yüksekliği.