Xamarin iOS:如何隐藏通知内容扩展界面仅留标题与按钮?
如何隐藏Notification Content Extension的自定义界面,仅保留标题与操作按钮
有效代码实现
在NotificationViewController的DidReceive方法中设置内容尺寸并隐藏视图,这是系统计算通知显示尺寸的关键时机:
public override void DidReceive(UNNotification notification) { base.DidReceive(notification); // 强制设置内容高度为0,宽度适配屏幕 PreferredContentSize = new CoreGraphics.CGSize(UIScreen.MainScreen.Bounds.Width, 0); // 彻底隐藏自定义视图 View.IsHidden = true; }
配套配置步骤
- 清理布局约束:删除Storyboard中自定义视图的所有自动布局约束,避免约束冲突导致尺寸设置失效。
- 透明背景:将视图背景色设为透明(
UIColor.Clear),防止残留背景色块显示。 - 恢复模拟器尺寸设置:把Storyboard中ViewController的
Simulated Size从FreeForm改回Inferred,避免预览设置干扰实际运行效果。
原方法无效的原因
ViewDidLoad仅在视图初始化时执行,此时通知内容尚未加载,系统会在DidReceive方法后重新计算通知显示尺寸,因此ViewDidLoad中设置的尺寸会被系统覆盖。
内容的提问来源于stack exchange,提问作者Tyler Wanta
相关产品推荐
相关产品推荐

