NavigationLink 似乎只占用很小的空间

Posted

技术标签:

【中文标题】NavigationLink 似乎只占用很小的空间【英文标题】:NavigationLink seems to take only a fiew space 【发布时间】:2019-12-24 15:44:37 【问题描述】:

我正在使用 NavigatonView 和 NavigationLink,我的视图是这样的:

ScrollView
    VStack
        // MARK: - Survey and tips Navigation
        HStack(spacing:9)
            NavigationLink(destination:Container.sharedContainer.resolve(SurveyListView.self,argument: $VM.occurrences)!)
                iconHome(image: "img-survey", icon: "icon-survey", text: "surveys_upper_case")
            NavigationLink(destination:Container.sharedContainer.resolve(SurveyListView.self,argument: $VM.occurrences)!)
                iconHome(image: "img-tip", icon: "icon-tip", text: "tips_upper_case")

        
        .frame(maxWidth: .infinity,maxHeight: .infinity)
    
    .padding(.horizontal,37)
    .background(Color.red)

iconHome 是另一个实现视图协议的结构:

struct iconHome : View

    var image:String
    var icon:String
    var text:LocalizedStringKey
    var body : some View
            GeometryReader geometry in
                ZStack
                    Image(self.image)
                        .renderingMode(.original)
                        .resizable()
                        .frame(width: geometry.size.width ,height:geometry.size.width)
                        .aspectRatio(contentMode: .fit)
                        .cornerRadius(20)
                    VStack
                        Image(self.icon)
                            .renderingMode(.original)
                            .resizable()
                            .frame(width: geometry.size.width / 5,height:geometry.size.width / 5 )
                            .aspectRatio(contentMode: .fit)
                        Text(self.text)
                            .foregroundColor(.white)
                            .modifier(OpenSansBoldModifier(fontSize: 12))
                    
                
                .shadow(radius: 5, x: 5, y: 5)
        
    

我得到了一个奇怪的结果:

我不知道为什么,但我的 HStack 包含我的两个导航链接只有红色矩形高......所以很难点击他......关于为什么 HStack 没有好的高的任何想法?

【问题讨论】:

【参考方案1】:

geometry 似乎缺少填充模式

  GeometryReader geometry in
   ....
   .aspectRatio(contentMode: .fill)

【讨论】:

以上是关于NavigationLink 似乎只占用很小的空间的主要内容,如果未能解决你的问题,请参考以下文章

Linux磁盘空间被占用,而且找不到占用文件

磁盘可用空间和占用空间对不上的问题

docker小见

八HyperLogLog

SwiftUI 中的 NavigationLink 不接受参数

SwiftUI:NavigationLink 奇怪的行为