12-13 UICollectionViewCells içeren bir UICollectionView var. UICollectionViewCells kolayca odaklanabilir ve her şey çalışır. UICollectionView dışında bir UIButton var. İlk hücrede ya da ikinci hücrede olursam ve yukarı kaydırdığımda UIButton'a kolayca odaklanabilirim. Üçüncü hücrede olduğumda, odağı UIButton'a taşıyamıyorum. Ne olduğuna dair herhangi bir fikir var mı?UICollectionViewCell to UIButton Odaklama tvOS
cevap
Sen odaklanmak istiyorum UIButton kapsayan bir UIFocusGuide kullanmalıdır. UIFocusGuide'ı collectionView kadar geniş ve düğmeyi kapatmak için yeterince uzun. Tercih edilenFocus'u görünüz.
UIFocusGuide *topButtonFocusGuide = [[UIFocusGuide alloc] init];
topButtonFocusGuide.preferredFocusedView = myButton;
[self.view addLayoutGuide:topButtonFocusGuide];
[self.view addConstraints:@[
[topButtonFocusGuide.topAnchor constraintEqualToAnchor:myButton.topAnchor],
[topButtonFocusGuide.bottomAnchor constraintEqualToAnchor:myCollectionView.topAnchor],
[topButtonFocusGuide.leadingAnchor constraintEqualToAnchor:myCollectionView.leadingAnchor],
[topButtonFocusGuide.widthAnchor constraintEqualToAnchor:myCollectionView.widthAnchor],
]];
Jess Bowers çözümü neredeyse orada ama Xcode UIButton
ler topAnchor
mülkiyet ve benim için çalışmıyor Jess tarafından verilen çözüm olmadığını söylüyor.
Benim için çözüm, en üstte UICollectionView
ile aynı genişlikte büyük bir görünüm oluşturmaktı. Resmi görmek.
UIFocusGuide *topButtonFocusGuide = [[UIFocusGuide alloc] init];
topButtonFocusGuide.preferredFocusedView = myButton;
[self.view addLayoutGuide:topButtonFocusGuide];
[self.view addConstraints:@[
[topButtonFocusGuide.topAnchor constraintEqualToAnchor:transparentView.topAnchor],
[topButtonFocusGuide.bottomAnchor constraintEqualToAnchor:transparentView.bottomAnchor],
[topButtonFocusGuide.leadingAnchor constraintEqualToAnchor:transparentView.leadingAnchor],
[topButtonFocusGuide.widthAnchor constraintEqualToAnchor:transparentView.widthAnchor],
]];
UIButton, UIView'nin bir alt sınıfı olan UIControl'ün bir alt sınıfıdır. https://developer.apple.com/library/tvos/documentation/UIKit/Reference/UIButton_Class/ Ayrıca bir düğmede topAnchor'u kullanan Apple örneğine bakın. https://developer.apple.com/library/prerelease/tvos/samplecode/UICatalogFortvOS/Listings/UIKitCatalog_FocusGuidesViewController_swift.html –
Tamam ama Xcode düğmelerin topAnchor olmadığını ve maalesef Jess'in çözümünün benim için çalışmadığını söylüyor. – SpaceDog
Başka bir şey yanlış. Sadece tuşumun bir ismiyle yazdım, .topu yazdı ve kaçtı ve otomatik tamamlama bana üstDaha gösterdi. Geçerli Xcode. Ayrıca Jess'in çözümü de benim için çalışmıyor. Kılavuzun çerçevesini bir kesme noktasında inceliyorum ve doğru görünüyor. Ama hiçbir etkisi yok. –
biri.
UIButton'ın canBecomeFocused geçersiz kılınması için bir kesme noktası koyuyorum ve bu hızlı küçük uzantıyı kullanarak düğmenin neden odaklanmadığını sormasını istedim.
extension UIView {
func whyNotFucusable() {
print(self.perform(Selector(("_whyIsThisViewNotFocusable"))).takeUnretainedValue())
}
}
Ben Hata ayıklamak çalışırken aşağıdaki hatayı almaya devam etti
....
Ben halt demek kapatılmasıy neyi sözlükten bakılır tümISSUE: This view may not be focusable because other views or focus guides are occluding it.
İlk ....
verb, formal, technical
- stop, close up, or obstruct (an opening, orifice, or passage).
Şimdiki soru, UIButton'umu hangi görüntüyü engelliyordu ???
Görsel hata ayıklayıcıda UI'yi hızlı bir şekilde açtım ve UIButtons'umun üstünde net bir görüş vardı. Görüntüyü incelediğimde, nilivasyonBar'ın varsayılan bir sistem arka plan rengine sahip olduğu iOS'un aksine, TVOS'un uygulamasının net bir varsayılan rengi vardır. Nav barını saklamadığımı anladım ve karşılığında düğmelerimi engelliyordum.
aşağıdaki yaptım, hepsi benim sorunlarını :) bu yardımcı olur
navController.setNavigationBarHidden(true, animated: false)
Umut sabit !!!
Swift 3.0
Jess Bower'ın cevabı bana & çok zaman kaydedilmiş için büyük bir yardımcı oldu.
Swift 3 & tvOS 10 ile çalışanlar. One şimdi preferredFocusEnvironments
'u kullanmalıdır. ViewDidLoad()
self.view.addLayoutGuide(focusGuide)
self.focusGuide.topAnchor.constraint(equalTo: self.buttonAbove.topAnchor).isActive = true
self.focusGuide.bottomAnchor.constraint(equalTo: self.CollectionView.topAnchor).isActive = true
self.focusGuide.leadingAnchor.constraint(equalTo: self.CollectionView.leadingAnchor).isActive = true
self.focusGuide.widthAnchor.constraint(equalTo: self.CollectionView.widthAnchor).isActive = true
self.focusGuide.preferredFocusEnvironments = [self.buttonAbove]
- 1. tvOS: UICollectionViewCell üzerinde paralaks efekt oluşturma
- 2. TVOS
- 3. rac_signalForControlBir UICollectionViewCell
- 4. UICollectionViewCell görünmüyor
- 5. UIButton
- 6. UIButton
- 7. UIButton
- 8. UIButton
- 9. UITextField odaklama
- 10. UIButton engelleme dokunuşlarıBegan ve dokunuşlarKaliteli
- 11. TVOS UITextView <code>TVOS</code> yılında
- 12. tvOS; Launch Image,
- 13. UICollectionViewCell Sınır/Gölge
- 14. Animate UICollectionViewCell on Tap
- 15. hızlı konumlandırma merkezi UICollectionViewCell
- 16. DataTemplate'de bir TextBox'ta odaklama
- 17. iOS, UIButton
- 18. TvOS: CollectionViewCells'ı Düğme Olarak Kullanma
- 19. Evrensel tvOS uygulaması nasıl yüklenir?
- 20. UICollectionViewCell systemLayoutSizeFittingSize, yanlış genişlik döndürüyor
- 21. Özel UIButton işaretlendiğinde vurgulamıyor
- 22. Özel UICollectionViewCell Otomatik Düzenleme NSInternalInconsistencyException error
- 23. Önizleme yapmadan otomatik odaklama kamerası
- 24. Tuval Üzerindeki Bir Sınıra Odaklama
- 25. Açısal Rotalar/giriş otomatik odaklama
- 26. Bileşen üzerindeki 'odaklama' renginin değiştirilmesi
- 27. Odaklama (veya sekme) siparişi verin
- 28. NSScrollView (veya NSClipview) odaklama halkası?
- 29. jQuery tokenInput eklentisi (ve odaklama)
- 30. ios5: delete UIButton border
Teşekkürler Jess - bu beni deli ediyordu. Bunu kullanırken bir sorun yaşarsanız, bağlantı noktalarınızdan birinin başka bir görünüme gömülmesinden kaynaklanabilir. En iyi bağlantı noktamın çalışmadığı gibi, bir kaydırma görünümünde koleksiyon görünümü ve koleksiyon görünümü altını kullanıyorum. Bunu kaydırma görünümü alt kısmına değiştirmek işe yaradı. – Reefwing
Bir çekicilik gibi çalışır! Teşekkürler. –
Merhaba Jess, Başka bir sorunum var. Solda değil de soldaki düğmem varsa ve yalnızca bir satır koleksiyon görünümüne sahip olursam koleksiyon görünümünde netleme yapamıyorum. Bunun için herhangi bir çözüm var mı? –