ios - UIButton का शीर्षक UIVibrancyEffect लागू होने पर दिखाई नहीं देता है



xamarin ios8-today-widget (1)

I आईओएस आज विजेट में मेरे UIButtons के लिए UIVibrancyEffect लागू करने में समस्या है। मैं उन्हें अधिसूचना केंद्र के आज अनुभाग में डिफ़ॉल्ट "संपादित करें" बटन पसंद करना चाहता हूं:

जैसा कि आप स्क्रीनशॉट में देख सकते हैं, डिफ़ॉल्ट बटन जीवंत है और बेहतर दिखता है।

मैंने विजेट के View को UIVisualEffectView साथ बदलने की कोशिश की, जैसे:

UIVisualEffectView effectView = new UIVisualEffectView(UIVibrancyEffect.CreateForNotificationCenter ());
effectView.Frame = this.View.Bounds;
effectView.AutoresizingMask = this.View.AutoresizingMask;
UIView oldView = this.View;
this.View = effectView;
effectView.ContentView.AddSubview(oldView);
this.View.TintColor = UIColor.Clear;

और यह काम करता प्रतीत होता है, लेकिन मेरे बटनों की खिताब भी जीवंत हो जाते हैं (मैं उन्हें काला रहना चाहता हूं):

क्या UIVibrancyEffect लागू होने पर बटन शीर्षक को जीवंत बनाने से रोकने का एक तरीका है?

मुझे यह भी जोड़ना चाहिए कि मैं Xamarin.iOS का उपयोग कर रहा हूं


मुझे लगता है कि मेरी अपनी समस्या का समाधान है मैंने UIVisualEffectView को रिक्त UIView साथ अंदर बना दिया और इसे UIButton पीछे जोड़ दिया।

यह कोड स्निपेट दिखाता है कि एक बटन कैसे स्टाइल करता है:

// Create effect view
var effectView = new UIVisualEffectView(UIVibrancyEffect.CreateForNotificationCenter ());
// This color looks best for me. You can play around with it to make it look better
effectView.BackgroundColor = UIColor.FromRGBA(55, 55, 55, 100);
// Position effectView
effectView.Frame = myButton.Frame;
// Add effectView and send it to back, behind actual button
this.View.AddSubview(effectView);
this.View.SendSubviewToBack (effectView);

// Create UIView and add it to effectView's ContentView
var view = new UIView ();
view.BackgroundColor = UIColor.White;
effectView.ContentView.AddSubview(view);
view.Frame = new CGRect(0, 0, effectView.Frame.Width, effectView.Frame.Height);

// Make sure your effect view has rounded corners
effectView.Layer.MasksToBounds = true;
effectView.Layer.CornerRadius = 4.0f;

और यह ऐसा दिखता है:





uivibrancyeffect