我正在尝试在 SwiftUI 中做一个简单的笔记应用程序,我想知道是否有任何库可以提供简单的富文本视图,允许用户以粗体、斜体、删除线、下划线等书写。
我尝试过LEOTextView,但它有很多错误,我想看看是否有 100% SwiftUI 的方法来实现这一点,这样它会更容易与我的项目集成。我对 UIKit 的了解也不是很多,所以如果用 SwiftUI 制作的话,添加更多功能会更容易。
抱歉,如果这是一个愚蠢的问题,并提前致谢。
我想这将是起点:
import SwiftUI
// first wrap a UITextView in a UIViewRepresentable
struct TextView: UIViewRepresentable {
@Binding var text: String
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
func makeUIView(context: Context) -> UITextView {
let textView = UITextView()
textView.delegate = context.coordinator
return textView
}
func updateUIView(_ uiView: UITextView, context: Context) {
uiView.text = text
}
class Coordinator : NSObject, UITextViewDelegate {
var parent: TextView
init(_ …Run Code Online (Sandbox Code Playgroud) 大家好。我正在创建一个简单的 SwiftUI 应用程序,我希望我的应用程序的 TabView 具有自定义背景而不是半透明的。
为了实现这一点,我使用UITabBar.appearance().backgroundColor = Colorand UITabBar.appearance().isTranslucent = false,它应该完全做到这一点,是的,它使栏不透明,但不是为栏提供我选择的颜色,而是在选项卡栏顶部生成一个新视图,该视图不是“不应该在那里,显然以前不存在。
您可以注意到出现的新视图。我想这是一个问题,isTranslucent因为当我删除它时,新视图消失了。
有没有办法可以更改颜色并使条形图不透明并且不显示该视图?
任何帮助表示赞赏。提前致谢。
SceneDelegate(仅更改颜色部分)
UITabBar.appearance().isTranslucent = false
UITabBar.appearance().backgroundColor = UIColor(named: "backgroundColor")
Run Code Online (Sandbox Code Playgroud)
标签视图
struct TabController: View {
@State private var selection = 0
var body: some View {
TabView(selection: $selection) {
HomePageView()
.tabItem {
Image(systemName: "house.fill")
.font(.title)
}
.tag(0)
Text("Second View")
.font(.title)
.tabItem {
Image(systemName: "bell.fill")
.font(.title)
}
.tag(1)
}
.edgesIgnoringSafeArea(.top)
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试利用 SwiftUI 2.0 的新多平台项目模板在 SwiftUI 中做一个简单的应用程序,我希望像许多其他应用程序一样添加折叠侧边栏的选项。
我尝试添加一个布尔状态变量来控制侧边栏是否应该显示,但这不起作用,因为然后主视图变为半透明(我猜这是因为 macOS 认为侧边栏现在是主视图)。
有没有办法在 SwiftUI 中本地实现这一点? 请注意,我使用的是 macOS Big Sur、Xcode 12 和 SwiftUI 2.0
提前致谢。
我的代码
内容视图.swift
import SwiftUI
struct ContentView: View {
#if os(iOS)
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
#endif
@ViewBuilder var body: some View {
#if os(iOS)
if horizontalSizeClass == .compact {
TabController()
} else {
SidebarNavigation()
}
#else
SidebarNavigation()
.frame(minWidth: 900, maxWidth: .infinity, minHeight: 500, maxHeight: .infinity)
#endif
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
.previewLayout(.sizeThatFits) …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 SwiftUI 为 macOS 制作一个简单的应用程序,我想添加一个侧边栏。我已经设法完美地制作了一个,但问题是我找不到改变List组件高亮颜色的方法。
如您所见,所选项目是红色的,但我希望它是灰色的,就像在 Finder 等大多数应用程序中一样。
总之,有没有办法使用 SwiftUI 更改 macOS 中列表的突出显示颜色?
请注意我没有使用 Catalyst。
提前致谢
我的代码:
SidebarView.swift
struct SidebarViewItem: View {
let text: String
let image: String
var body: some View {
HStack {
if image == "Folder" || image == "Tray" {
Image(image)
.resizable()
.frame(width: 18, height: 15)
} else if image == "Star" {
Image(image)
.resizable()
.frame(width: 20, height: 18)
} else {
Image(image)
.resizable()
.frame(width: 20, height: 20)
}
Text("\(text)")
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用SwiftUI重新创建iOS 11/12 App Store 。假设“故事”是在点击卡片时显示的视图。
我已经完成了卡片的制作,但是现在遇到的问题是如何制作动画以显示“故事”。
由于我不擅长解释,因此这里有一个gif:
我曾考虑过将整个卡片做成PresentationLink,但是“故事”显示为模态,因此它不会覆盖整个屏幕,也不会做我想要的动画。
最相似的是NavigationLink,但这使我不得不添加NavigationView,卡的显示就像另一页一样。
我实际上不在乎它是PresentationLink还是NavigationLink或其他任何东西,只要它可以动画并显示“故事”即可。
提前致谢。
我的代码:
卡速
struct Card: View {
var icon: UIImage = UIImage(named: "flappy")!
var cardTitle: String = "Welcome to \nCards!"
var cardSubtitle: String = ""
var itemTitle: String = "Flappy Bird"
var itemSubtitle: String = "Flap That!"
var cardCategory: String = ""
var textColor: UIColor = UIColor.white
var background: String = ""
var titleColor: Color = .black
var backgroundColor: Color = .white
var body: …Run Code Online (Sandbox Code Playgroud) 我正在使用 SwiftUI 开发一个简单的 iOS 应用程序,其中包含两个视图:aLogInView()和HomeView().
我想要的非常简单:当用户单击登录按钮时,LogInView()我希望应用程序隐藏LogInView()并显示HomeView()全屏,而不是像模态那样并且不允许用户返回。
这可以通过 Swift 和 UIKit 中的 Storyboards 轻松完成,有没有办法用 SwiftUI 做到这一点?
任何帮助表示赞赏。提前致谢。
我的代码:
登录查看:
struct LogInView: View {
var body: some View {
VStack {
Text("Welcome to Mamoot!")
.font(.largeTitle)
.fontWeight(.heavy)
Text("We are glad to have you here.")
Text("Please log in with your Mastodon or Twitter account to continue.")
.multilineTextAlignment(.center)
.lineLimit(4)
.padding()
Spacer()
FloatingTextField(title: "Username", placeholder: "Username", width: 300, type: "Username")
FloatingTextField(title: …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 SwiftUI 制作一个笔记应用程序,并且我想显示类似于Apollo Reddit 应用程序的笔记。
\n\n它显示帖子的方式没有什么特别的,它只是使用类似于列表的界面显示帖子GroupedListStyle(),但各部分之间的间距较小。
我尝试了很多技巧来减少这个间距,但似乎都不起作用。
\n\n任何帮助表示赞赏。提前致谢!
\n\n这是我的代码:
\n\nimport SwiftUI\n\nstruct NotesView: View {\n\n let array = [\n Note(title: "Mi pana miguel letra", content:\n """\n [Intro: Keyan JRN & Producer Tag]\n El pana Miguel, yah, ey\n El pana Miguel, yah, ey (Snorkatje)\n Mi pana, mi pana, yeah\n Mi pana,\xe2\x80\x85mi\xe2\x80\x85pana, yeah\n Mi pana,\xe2\x80\x85mi pana, yeah, eh-eh\n Uh-uh-uh-uh-uh-uh\n\n [Estribillo]\n Ha-ha-hace un rato\xe2\x80\x85conoc\xc3\xad al pana …Run Code Online (Sandbox Code Playgroud) 我正在 Pygame 上制作自己的游戏,我想将图像添加到矩形而不是彩色矩形。
我知道如何向 pygame 添加图像,但我想知道是否有某种方法可以添加图像并使用 Pygame.rect 属性,例如 usrect.centerY和rect.centerX。
有人知道怎么做吗?
我正在使用 Apple 的 SwiftUI 框架创建一个 iOS 应用程序。因为我需要检测用户是否点击了屏幕的特定区域,所以我显然使用了一个按钮。
问题是该区域包含一个图像和一个文本,并且当按钮自动为其内容赋予蓝色时,图像也被着色,因此它不是图像,而是一个蓝色圆角矩形。
据说一张图片值一千字,我不擅长解释,这里有一个图形演示会发生什么:
发生这种情况是因为按钮正在添加.foregroundColor(.blue)到图像中。
如何避免/禁用按钮向其组件添加样式?
编辑:这是我的按钮代码:
ContentView.swift:
Button(action: {/* other code */}) {
PackageManagerRow(packageManager: packageManagersData[0])
}
Run Code Online (Sandbox Code Playgroud)
PackageManagerRow.swift:
struct PackageManagerRow : View {
var packageManager : PackageManager
var body: some View {
VStack {
HStack {
Image(packageManager.imageName)
.resizable()
.frame(width: 42.0, height: 42.0)
Text(verbatim: packageManager.name)
Spacer()
Image(systemName: "checkmark")
.foregroundColor(.blue)
.opacity(0)
}.padding(.bottom, 0)
Divider()
.padding(.top, -3)
}
}
}
Run Code Online (Sandbox Code Playgroud) 大家好。我正在开发一个显示一些鸣叫的简单SwiftUI应用程序。它具有一个带两个视图的选项卡视图:将显示推文的主页和一个辅助视图。
问题在于主页上有一个NavigationView。如果我选择仅显示主页,则一切似乎都正确,但是当我从显示TabView并向下滚动时,NavigationView感觉有点奇怪。
由于我不擅长解释,因此这里有一些图片:
我想添加.edgesIgnoringSafeArea(.top),但是NavigationView现在被该缺口隐藏了,并且没有效果。
有什么办法可以使NavigationView像第一个图像一样显示?
任何帮助表示赞赏。提前致谢。
HomePageView:
struct HomePageView: View {
var body: some View {
NavigationView {
List {
//tweet code
}
.navigationBarTitle("Your feed")
}
}
}
Run Code Online (Sandbox Code Playgroud)
TabView:
struct TabController: View {
@State private var selection = 0
var body: some View {
TabView(selection: $selection){
HomePageView()
.tabItem {
VStack {
Image(systemName: "house.fill")
.font(.title)
}
}
.tag(0)
Text("Second View")
.font(.title)
.tabItem {
VStack {
Image(systemName: "bell.fill")
.font(.title)
}
} …Run Code Online (Sandbox Code Playgroud) 大家好。我正在使用 SwiftUI 创建一个简单的 iOS 应用程序,我想将视图的背景颜色更改为我拥有的自定义背景颜色。
这是非常容易做到的事情,但如果不使用 ZStacks 或类似的解决方法,似乎在 SwiftUI 中是不可能实现的,例如,如果您使用 List,则无法实现。
我想更改视图的颜色,而不是使用带有自定义颜色的 ZStack,然后将其余的视图放在它上面。我UIView.appearance().backgroundColor = color在初始化我的视图时尝试使用,但随后所有视图都被隐藏并且屏幕填充了所选的颜色。
由于我不擅长解释,这里有一些描述问题的图像:
import SwiftUI
struct TabController: View {
@State private var selection = 0
init() {
UIView.appearance().backgroundColor = UIColor(named: "backgroundColor")
}
var body: some View {
TabView(selection: $selection) {
HomePageView()
.tabItem {
Image(systemName: "house.fill")
.font(.title)
}
.tag(0)
Text("Second View")
.font(.title)
.tabItem {
Image(systemName: "bell.fill")
.font(.title)
}
.tag(1)
}.edgesIgnoringSafeArea(.top)
}
}
Run Code Online (Sandbox Code Playgroud) 我正在 SwiftUI 中开发 Mastodon 客户端,我希望允许用户从上下文菜单中查看帖子的预览,就像许多其他应用程序一样。
我知道我可以在 UIKit 中实现这一点,但我还没有看到如何在 SwiftUI 中实现。
例如,假设我有两个视图:CompactView 和 ExpandedView。CompactView 由Image和组成Text,行数限制为 2,因此每隔一行都被隐藏。ExpandedView 也是由 anImage和 a组成Text,但文本的行数限制为 20,以便显示所有帖子内容。
如果用户用力触摸 CompactView,我想在上下文菜单中显示 ExpandedView 而不是 CompactView。我怎样才能实现这个目标?
struct ContentView: some View {
var body: some View {
List(0 ..< 5) {
CompactView()
}
}
}
struct CompactView: some View {
var body: some View {
HStack {
Image("profile")
Text(/*Post content goes here*/)
.lineLimit(2)
}
.contextMenu {
Button("Report", action: {})
}
}
}
struct ExpandedView: some …Run Code Online (Sandbox Code Playgroud) 这可能是一个非常愚蠢的问题,所以提前抱歉。
我正在使用核心数据和 SwiftUI,我正在尝试制作一个简单的应用程序来存储笔记,但我似乎无法让预览工作。该应用程序在模拟器上运行良好,但在预览画布上崩溃。我已经阅读了很多 Reddit 和 StackOverflow 的问题,但没有一个与我的问题有关。
我已经将context变量传递给我的视图,并且我 100% 确定它不是因为崩溃报告说的,因为Persistent store migration failed, missing mapping model它说。我知道它说它需要迁移,但我没有更改任何数据模型(它是一个全新的项目),并且该应用程序在模拟器上运行良好,所以我不确定这是否真的是崩溃的原因。
我能想到的就是 SwiftUI 的预览画布可能与其他项目共享相同的数据库,并且存在冲突(这很有意义,因为我还有其他项目也使用核心数据,也是在 SwiftUI 中制作的,并共享名称一些实体)。
我在使用 Realm 时遇到了同样的问题,我通过在使用预览画布时删除 Realm 数据库文件来解决这些问题,因此每次运行都会清空数据库,我没有任何问题。这是一个好方法吗?我应该这样做吗?
我会展示我的代码,但它实际上只是一个ForEach遍历名为Note.