2016-04-07 44 views
0

UIVisualEffectView olmak için renkleri içeren bir Panel istiyorum. Yani, arka plan ve düğmeleri bulanıklaştır. Şunun gibi: enter image description hereBir dersi kullanmak veya uzatmak daha mı iyi? (hızlı)

Ben UIVisualEffectView (? ya UIView) uzanan bir ColorPanelView sınıf veya bir UIVisualEffectView kullanan ColorPanel sınıf oluşturmak mı?

Farklılıklar nelerdir ve hangi yol daha iyidir?

+0

Bu, modern OO sınıf tasarımının en önemli kurallarından biriyle ilgilidir. "Kalıtım üzerinden kompozisyon". https://en.m.wikipedia.org/wiki/Composition_over_inheritance – Darko

cevap

1

Doğru bir şekilde anlıyorsam, UIVisualEffectView alt sınıflarını veya varolan bir görünüme UIVisualEffectView eklemeniz gereken özel bir görünüm yapıp yapmamayı soruyorsunuzdur.

Anlayışım doğruysa, bu görünümü kodunuzdaki başka herhangi bir yerde yeniden kullanmanız gerekirse, bağımlı olur. Panellerinizi içeren UIVisualEffectView özel bir alt sınıfı yaparak, çok fazla kodu tekrar etmeden kolayca yeniden kullanabilirsiniz.

Yalnızca bir kez ihtiyacınız olacağını biliyorsanız, mevcut bir görünüme UIVisualEffectView ekleyebilir ve ardından istediğiniz gibi özelleştirebilirsiniz.

+0

Hayır, sadece bir kez ihtiyacım var, bu yüzden bir SCNScene'e UIVisualEffectView ekleyebilir miyim? Nasıl? –

1

Ya işe yarayacak.

Bu durumda, UIVisualEffectView yerine UIView'yi genişletirim. Bunun nedeni, eğer tasarım değişiyorsa ve renk panelinin arka planın yerine sağlam bir arka plan üzerinde olmasını istiyorsanız, bu değişikliği, genişletmekte olduğunuz sınıfı değiştirmeden yapabilirsiniz.