小编Sim*_*hia的帖子

覆盖接近传感器时保持显示

我想在不关闭显示屏的情况下拦截接近传感器.

我从文档中知道我有两个Bool变量:

proximityMonitoringEnabled
proximityState
Run Code Online (Sandbox Code Playgroud)

和这段代码

[UIDevice currentDevice].proximityMonitoringEnabled = YES;
Run Code Online (Sandbox Code Playgroud)

当接近传感器检测到某些东西时,它会关闭显示屏,就像在打电话时将手机放在耳边一样.

覆盖接近传感器时如何保持显示屏开启?

iphone proximity uidevice ios proximitysensor

13
推荐指数
3
解决办法
9744
查看次数

List 和 NavigationView 中的 SwiftUI 奇怪行为 - 模糊函数正在改变 y 偏移量

我有一个List对象,NavigationView如果我模糊它,视图就会改变偏移量,似乎它会在列表视图中强制 EdgesIgnoringSafeArea:

情况 1:如果我模糊它,视图就会改变偏移量。

在此输入图像描述

情况2:如果我List在 in之前放置一些内容VStack,则偏移量是正确的(与对象的空间)

在此输入图像描述

情况 3:我发现的解决方法是在模糊效果处添加偏移量 y:1

在此输入图像描述

struct Test: View {

@State private var arr = [1,2,3,4]

var body: some View {
   TabView {
       NavigationView {
            HStack {
                VStack {
                    List {
                        ForEach (arr, id:\.self) { _ in
                            Image(systemName: "person")
                            .resizable()
                            .frame(width: 150, height: 150)
                        }
                    }
                }
                VStack {
                    List {
                        ForEach (arr, id:\.self) { _ in
                            Image(systemName: "person")
                            .resizable()
                            .frame(width: 150, height: 150)
                        }
                    }
                    .blur(radius: 3)
                } …
Run Code Online (Sandbox Code Playgroud)

iphone blur ios swift swiftui

5
推荐指数
0
解决办法
761
查看次数

如何在带有@Published的模型中使用@AppStorage并存储应用程序内购买的产品

我知道@AppStorage只能在视图内使用,但我更喜欢管理模型并利用@AppStorage.

例如,如果我想将购买的产品存储在 中In App Purchasing,我可以使用此解决方法还是最好避免这种情况?

typealias PurchasedProductIdentifiers = Set<String>

extension PurchasedProductIdentifiers: RawRepresentable {
    public init?(rawValue: String) {
        guard let data = rawValue.data(using: .utf8),
            let result = try? JSONDecoder().decode(PurchasedProductIdentifiers.self, from: data)
        else {
            return nil
        }
        self = result
    }
    public var rawValue: String {
        guard let data = try? JSONEncoder().encode(self),
            let result = String(data: data, encoding: .utf8)
        else {
            return "[]"
        }
        return result
    }
}

class MyModel: NSObject, ObservableObject {
    
    @Published var purchasedPub: …
Run Code Online (Sandbox Code Playgroud)

iphone in-app-purchase swift swiftui appstorage

5
推荐指数
1
解决办法
2700
查看次数

VStack中的SwiftUI不同对齐文本

我有一个聊天示例,有 3 个文本,名称、文本和小时。我想将前两个文本向左对齐,另一个文本向右对齐。

var body: some View {
            HStack {
                if self.cloudPosition == .dx {Spacer(minLength: 20)}
                VStack (alignment: .leading) {
                    Text("\(self.text.name)")
                        .font(.system(size: 15))
                        .foregroundColor(Self.getColor(index: self.text.colorIndex))
                        .padding(EdgeInsets(top: 3, leading: 15, bottom: 3, trailing: 10))
                    Text("\(self.text.text)")
                        .font(.system(size: 15))
                        .padding(EdgeInsets(top: 0, leading: 8, bottom: 0, trailing: 8))
                    HStack {
                        Spacer() //I remove this in example 3 
                        Text("\(self.text.date, formatter: Self.timeFormat) ")
                            .font(.system(size: 9))
                            .foregroundColor(.gray)
                            .padding(3)
                    }
                }
                .background(self.cloudColor)
                .cornerRadius(10)
                .padding(10)
                if self.cloudPosition == .sx {Spacer(minLength: 20)}
            }
    }
Run Code Online (Sandbox Code Playgroud)

枚举:

enum CloudPosition {
    case dx,sx …
Run Code Online (Sandbox Code Playgroud)

iphone ios swift swiftui

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