UIView, ekranın bir köşesine giren özel bir UIViewController sahibine sahibim, ancak bunun bir kısmı üzerinde bazı düğmeler ve nesneler olan kısımlar dışında saydamdır. Bu görünümdeki nesnelerin düzeni nedeniyle, görünümün çerçevesi onun altındaki bazı düğmeleri kapsayabilir. Önemli bir şeye dokunmuyorlarsa, o görünümdeki herhangi bir dokunuşları görmezden gelmek istiyorum, ancak sadece gerçek dokunma olaylarını (touchesEnded/nextResponder şeyleri) geçirebiliyorum. Bir UIButton'um veya touch'Ended kullanmayan bir şeye benziyorsam, dokunma olayını buna nasıl iletebilirim?Dokunma olaylarını göz ardı etmek ve başka bir alt görüntünün UIControl nesnelerine iletmek nasıl?
Bu özel ViewController pek çok farklı görünümde kullanılabileceğinden, düğmeyi çevirmek için yalnızca el ile ayarlayamıyorum. Temelde bu çağrı için bir yol gerekir: yanı UIControl türlerinde
[self.nextResponder touchesEnded:touches withEvent:event];
.
Yapmak istediğim gibi görünüyor, ancak dokunmalarını görmezden gelmek istediğim görünüm, oluşturduğum UIViewController'ın görünüm özelliğidir, bu yüzden bu görünümün hitTest işlevini geçersiz kılacak bir yol var mı? –
@chris: Tabii, sadece alt sınıfı ve yukarıda gösterildiği gibi geçersiz kılın. İçinde çok az bir kodla asılı fazladan bir '.h 've' .m' dosyanız olacağı anlamına gelir, ancak işi yapacak. Ayrıca, geçit görünümü, araç takımınızda bulunması yararlı bir alt sınıftır. Görünüm denetleyiciniz bir 'nib' görünümü oluşturuyorsa, sadece IB dosyasına gidip görünümün sınıfını kimlik denetçisindeki yeni alt sınıfa dönüştürün. Program aracılığıyla oluşturulmuşsa, görünüm alt sınıfınızı 'loadView' içinde oluşturun ve atayın (düzenlemeye bakın). – Stuart
Harika tavsiye! Bütün gün için iyi bir çözüm arıyordum. Teşekkürler. – Judioo