ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

swiftui-ui-patterns - matched-transitions

swiftui-ui-patterns - matched-transitions 匹配转场Matched transitions意图使用匹配转场在源视图缩略图、头像和目标视图弹窗、详情、查看器之间创建平滑的连续性。核心模式使用共享的Namespace和稳定的源 ID。在 iOS 26 上使用matchedTransitionSourcenavigationTransition(.zoom(...))。对视图层级内的原位转场使用matchedGeometryEffect。保持 ID 在视图更新期间稳定避免随机 UUID。示例媒体预览到全屏查看器iOS 26structMediaPreview:View{NamespaceprivatevarnamespaceStateprivatevarselected:MediaAttachment?varbody:someView{ThumbnailView().matchedTransitionSource(id:selected?.id??,in:namespace).sheet(item:$selected){iteminMediaViewer(item:item).navigationTransition(.zoom(sourceID:item.id,in:namespace))}}}示例视图内的匹配几何structToggleBadge:View{NamespaceprivatevarspaceStateprivatevarisOnfalsevarbody:someView{Button{withAnimation(.spring){isOn.toggle()}}label:{Image(systemName:isOn?eye:eye.slash).matchedGeometryEffect(id:icon,in:space)}}}应保留的设计选择跨界面转场优先使用matchedTransitionSource。保持源和目标尺寸合理避免突兀的缩放变化。对状态驱动的转场使用withAnimation。陷阱不要使用不稳定的 ID这会破坏转场。避免形状不匹配例如方形到圆形除非设计本身如此预期。
返回列表