如何将LargestUndimmedDetentIdentifier与自定义SheetPresentation高度配合使用?
如何为自定义Detent设置UISheetPresentationController的LargestUndimmedDetentIdentifier
你只需要把创建自定义Detent时传入的标识符字符串赋值给LargestUndimmedDetentIdentifier就行——这个属性的作用是指定「最大的那个允许下方内容交互的Sheet高度档位」。
看你的代码:
- 创建
smallDetent时用的标识符是"small" - 创建
msmallPlusDetent时用的标识符是"smallPlus"
具体赋值取决于你的需求:
- 要是希望Sheet处于
small(60高度)时能和下方内容交互,而smallPlus(350高度)时遮罩下方,就赋值"small" - 要是希望Sheet在
small和smallPlus两个高度下,下方内容都能交互,就赋值"smallPlus"(它是更高的档位,设置后所有比它低的档位都会自动保持不遮罩)
修改后的代码示例:
// 让smallPlus档位时也能交互下方内容 sheet.LargestUndimmedDetentIdentifier = "smallPlus"; // 或者只让small档位时可交互 // sheet.LargestUndimmedDetentIdentifier = "small";
补充几个注意点:
- 自定义Detent的标识符要保证唯一,别和系统自带的(比如
UISheetPresentationControllerDetentIdentifier.Medium、Large)重名 - 如果不需要任何档位允许下方交互,直接把这个属性设为
null即可
内容的提问来源于stack exchange,提问作者Amine
相关产品推荐
相关产品推荐

