小编use*_*ser的帖子

控制 SwiftUI 中 TextEditor 的大小

我想TextEditor在我的 ForEach 中有一些,我在 down 中制作了这个示例代码!正如您在 Image 中看到的代码和结果,它TextEditor就像一个贪婪的视图,并占用所有可用空间!至少对我来说有很多缺点!

如果我将高度限制为自定义值,那么我将失去查看 TextEditor 本身的所有字符串和字符串行的可能性,并且我必须向上或向下滚动才能看到其他行,这不是我的设计!

我的目标是占用TextEditor所需的空间,如果我输入新的字符串行,那么它的高度可以增加,或者如果我删除字符串行,它的高度可以缩小到至少 1 行!

我想知道我该怎么做?

struct ContentView: View {
    
    @StateObject var textEditorReferenceType: TextEditorReferenceType = TextEditorReferenceType()
    
    var body: some View {
        
        Text("TextEditorView").bold().padding()
        
        VStack {
            
            ForEach(textEditorReferenceType.arrayOfString.indices, id: \.self, content: { index in
                
                TextEditorView(string: $textEditorReferenceType.arrayOfString[index])

            })
            
        }
        .padding()
        
    }
}


struct TextEditorView: View {
    
    @Binding var string: String
    
    var body: some View {
        
        TextEditor(text: $string)
            .cornerRadius(10.0)
            .shadow(radius: 1.0)
        
    }
    
}

class TextEditorReferenceType: ObservableObject {
    
    @Published var arrayOfString: [String] …
Run Code Online (Sandbox Code Playgroud)

swift swiftui

20
推荐指数
4
解决办法
1万
查看次数

如何使用描边边框来修剪形状?

我在 SwiftUI 中修剪后使用描边边界时遇到困难,该怎么办?

\n
Circle()\n  .trim(from: 0, to: 0.5)\n  .strokeBorder(Color.red, style: StrokeStyle(lineWidth: 50.0, lineCap: .round, lineJoin: .round))\n
Run Code Online (Sandbox Code Playgroud)\n

错误:

\n
\n

类型“some Shape”的值没有成员“strikeBorder”

\n
\n

\xe2\x9a\xa0\xef\xb8\x8f 至少还有 2 种其他方法可以得到像strokeBorder给出的结果。但他们使用strokeBorder,我想在使用时解决问题strokeBorder

\n

swift swiftui

13
推荐指数
1
解决办法
1002
查看次数

如何在 SwiftUI 生命周期中删除 macOS 中的最大化、最小化和关闭按钮?

我正在开发一个项目,用于删除最大化、最小化和关闭按钮,我们可以在SwiftUI 生命周期中使用 Xcode for macOS构建的每个应用程序/项目的每个窗口中看到这些按钮。我怎么能这样做呢?


在此输入图像描述


PS:请考虑我正在SwiftUI 生命周期/macOS上进行编码,如果您的代码或方式与其不兼容,那么我将无法使用它。感谢您的帮助和您的时间。

更新,日期 2022 年 3 月 5 日: 问题仍然悬而未决,正在寻找 SwiftUI 方法。您可以使用 SwiftUI api 来回答这个问题。

macos swift swiftui

12
推荐指数
1
解决办法
4405
查看次数

为什么我的应用程序图标比 macOS Dock 中的其他应用程序图标大?

我刚刚在 SwiftUI-macOS 中向我的项目添加了一个应用程序图标。构建并运行后,我发现我的应用程序图标比应有的要大!为什么会出现这种情况?正如您所看到的,它也没有圆角半径。

在此输入图像描述

macos

12
推荐指数
2
解决办法
3161
查看次数

忽略奇异矩阵,我应该关注/忽略 SwiftUI 中的控制台消息吗?

当我使用rotation3DEffect时,有时值会变成90或-90度,这正是我计划的,一旦我的度数达到90或-90,我就会在控制台中看到这样的按摩:

ignoring singular matrix: ProjectionTransform(m11: 1.0, m12: 0.0, m13: 0.0, m21: -0.125, m22: -0.25, m23: -0.0025, m31: 12.5, m32: 125.0, m33: 1.25)
Run Code Online (Sandbox Code Playgroud)

我知道这是因为 90 或 -90 度,我想知道我应该对这种按摩做出反应还是干脆忽略它?考虑到这一点,我的应用程序获得 90 或 -90 没有问题。

重新创建按摩的代码:

    struct ContentView: View {
    var body: some View {

        Rectangle()
            .fill(Color.red)
            .frame(width: 100, height: 200, alignment: .center)
            .rotation3DEffect(
                Angle(degrees: 90),
                axis: (x: 1.0, y: 0.0, z: 0.0),
                anchor: .center,
                anchorZ: 0.0,
                perspective: 0.5)

    }
}
Run Code Online (Sandbox Code Playgroud)

swiftui

11
推荐指数
1
解决办法
2694
查看次数

为什么我的 View 可以在 SwiftUI 中使用 Equatable 函数,但我却不能在 View 中使用它?

我正在尝试使用 EquatableView 作为我的视图,但 SwiftUI 不使用我的 == 函数,看来我做的一切都是正确的,但不起作用,需要帮助。我想使用 == 函数来阻止 SwiftUI 进行不必要的渲染,但它每次都会渲染并且不使用给定的函数,为什么?

import SwiftUI

extension Int { var isEven: Bool { return self % 2 == 0 } }
Run Code Online (Sandbox Code Playgroud)
struct ContentView: View {
    
    @State private var number = 3
    
    var body: some View {
        VStack {
            
            // EquatableView ( content: NumberView(number: number) )  // <<: Here
            // NumberView(number: number).equatable()   // <<: Or Here
            

            Button("New Random Number") {
                number = Int.random(in: 1...100)
            }
            
            Text(number.description).bold().padding()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
struct NumberView: View, Equatable { …
Run Code Online (Sandbox Code Playgroud)

swift swiftui

8
推荐指数
1
解决办法
2100
查看次数

如何从匹配的几何效果中删除/控制淡入淡出效果?

我有一个测试代码来显示这个问题,当我使用matchedGeometryEffect时,matchedGeometryEffect向渲染结果添加了不希望的淡入淡出效果,所以我喜欢删除这种淡入淡出效果甚至控制它。当我将视图颜色从一种颜色更改为另一种颜色时,这可能是一件好事,但就我而言,这并不好,因为颜色始终是黑色。

struct ContentView: View {
    
    @Namespace var animationNamespaceon
    @State private var start: Bool = Bool()
    
    var body: some View {
        
        VStack {
            
            Spacer()
            
            circle
            
            Spacer()
            
            Button("update") { start.toggle() }
            
        }
        .animation(Animation.linear(duration: 3), value: start)

    }
    
   @ViewBuilder var circle: some View {
        if start {
            
            Circle()
                .foregroundColor(Color.black)
                .matchedGeometryEffect(id: "Circle", in: animationNamespaceon)
                .frame(width: 300, height: 300)


        }
        else {
            Circle()
                .foregroundColor(Color.black)
                .matchedGeometryEffect(id: "Circle", in: animationNamespaceon)
                .frame(width: 50, height: 50)
                
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

swift swiftui

8
推荐指数
1
解决办法
1790
查看次数

如何在 SwiftUI 中将 Apple ColorPicker 的布局从圆形更改为方形?

ColorPicker默认的按钮样式是圆形,如下所示。

\n

在此输入图像描述

\n

我想将圆形按钮的样式更改为矩形。但似乎没有 API 可以改变它的风格。所以我在它上面放了一个矩形,并将它的 allowedHitTesting 设置为 false 以将单击事件传输到 ColorPicker。

\n

在此输入图像描述

\n
struct ColorPickerView: View {\n    @State private var colorValue = Color.orange\n    var body: some View {\n        ZStack() {\n            ColorPicker("", selection: $colorValue)\n                .labelsHidden()\n            Rectangle()\n                .foregroundColor(.blue)\n                .frame(width: 40, height: 40, alignment: .center)\n                .allowsHitTesting(false)\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

但是点击后ColorPicker没有出现。

\n

我在矩形下面画了一个圆圈来测试 allowedHitTesting 是否有用。它可以正常响应点击手势打印“Circle tapped!”。

\n
struct ColorPickerView: View {\n    @State private var colorValue = Color.orange\n    var body: some View {\n        ZStack() {\n            ColorPicker("", selection: $colorValue)\n                .labelsHidden()\n            Rectangle()\n                .foregroundColor(.blue)\n                .frame(width: 40, height: 40, …
Run Code Online (Sandbox Code Playgroud)

color-picker swiftui

7
推荐指数
1
解决办法
3584
查看次数

SwiftUI:导航栏和选项卡栏上的全屏视图

我正在尝试在 SwiftUI 中的应用程序上添加全屏视图。这样做的目的是要有一个淡入的“阴影”,使屏幕变暗并将焦点集中到自定义弹出窗口,从而禁用背景中的内容。请参阅下面的视觉示例:

我有什么我想要的是

我试图添加此阴影的视图嵌入在复杂的 NavigationView 堆栈中(几层深,通过 a 访问NavigationLink),并且还有一个可见的 TabBar。到目前为止,我已经尝试将NavigationViewa 嵌入ZStack并在顶部添加 aRectangle()但无济于事,NavigationBar 和 TabBar 仍然位于此视图的顶部。我也尝试过使用修饰符,.zIndex()但这似乎没有任何作用。

任何帮助深表感谢,

谢谢

fullscreen swift swiftui

6
推荐指数
1
解决办法
1万
查看次数

如何在 SwiftUI 中的 SegmentedPickerStyle 中为选取器提供图像和文本?

我正在使用 SwiftUI 构建一个选择器。

现在我想为每个选择添加一个图标和文本。所以它应该看起来像这样:

在此输入图像描述

这可能吗?如果是的话怎么办?

或者苹果人机界面指南根本不推荐它?

我已经尝试使用 HStack 将图像和文本包装在一起。

enum Category: String, CaseIterable, Identifiable {
    case person
    case more

    var id: String { self.rawValue }
}

struct ContentView: View {

    @State private var category = Category.person

    var body: some View {
        Picker("Category", selection: $category) {
            HStack {
                Image(systemName: "person")
                Text("Person")
            }.tag(Category.person)
            HStack {
                Image(systemName: "ellipsis.circle")
                Text("More")
            }.tag(Category.more)
        }.pickerStyle(SegmentedPickerStyle())
        .padding()
    }
}
Run Code Online (Sandbox Code Playgroud)

但该框架将其分为四部分。

在此输入图像描述

picker swiftui

6
推荐指数
1
解决办法
4620
查看次数

标签 统计

swiftui ×9

swift ×6

macos ×2

color-picker ×1

fullscreen ×1

picker ×1