小编Tio*_*Tio的帖子

如何在工作表视图上制作不透明的背景颜色?

我目前正在使用 SwiftUI 开发应用程序。

我正在寻找某种方法在工作表视图上制作具有不透明度的背景颜色。

有没有办法做到这一点?


我已经尝试使用下面的代码来做到这一点,我可以使用 opacity 属性更改颜色,但是我在工作表视图下看不到文本(工作表)...

import SwiftUI

struct ContentView: View {
    
    @State var isSheet = false
    
    var body: some View {
       
        Button(action: {self.isSheet.toggle()}) {
            Text("Sheet")
        }.sheet(isPresented: $isSheet){
            Color.yellow.opacity(0.5)
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}  
Run Code Online (Sandbox Code Playgroud)

Xcode:版本 11.7

斯威夫特:斯威夫特 5

swift5 swiftui

6
推荐指数
3
解决办法
1414
查看次数

如何修复警告“框架尺寸无效(负或非有限)”。

我目前正在使用 SwiftUI 开发一个应用程序。

我正在尝试使用计时器类制作进度条。

当我在for a of的参数0.05中设置一个小值时,我会收到以下警告:everyTimer.publish()widthRectangle

框架尺寸无效(负或非有限)。

我该如何解决这个问题?


以下是代码:

时间管理器.swift

import SwiftUI

class TimeManager: ObservableObject {
    
    var timer = Timer.publish(every: 0.05, on: .main, in: .common).autoconnect()
    
}
Run Code Online (Sandbox Code Playgroud)

ProgressBar.swift

import SwiftUI

struct ProgressBar: View {
    @EnvironmentObject var timeManager:TimeManager
    
    @Binding var duration:Double
    @Binding var maxValue:Double
    
    var body: some View {
        
        VStack(alignment:.leading){
            RoundedRectangle(cornerRadius: 30)
                .fill(Color.red)
                .frame(width:CGFloat(self.duration / self.maxValue) * 150, height: 12)
            Text("value:\(CGFloat(self.duration / self.maxValue) )")

        }
            .onReceive( self.timeManager.timer) { _ in
                if self.duration > 0 { …
Run Code Online (Sandbox Code Playgroud)

swift swiftui

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

如何为“Timer.publish()”声明变量

我目前正在使用 SwiftUI 开发一个应用程序。

我正在尝试制作一个计时器应用程序,并且想控制 Timer.publish() 方法,因此我制作了启动和停止计时器的方法。

但我不知道如何声明变量Timer.publish(),然后代码不起作用......

我如何声明变量Timer.publish()


ContentView.swift(*此代码无法构建)

import SwiftUI

struct ContentView: View {
    
    @State var timer:Timer! //I don't know how to declare here...
    @State var counter = 0
    
    var body: some View {
        VStack{
            HStack{
                Text("RUN")
                    .onTapGesture {
                        startTimer()
                        
                    }
                Text("STOP")
                    .onTapGesture {
                        stopTimer()
                    }
            }
            
            Text(String(counter))
                .padding()
        }
        
        .onReceive(timer) { _ in
            print("onRecieve")
            counter += 1
            
        }
    }
    
    func stopTimer() {
        self.timer.upstream.connect().cancel()
    }
    
    func startTimer() {
        self.timer = Timer.publish(every: 1, on: .main, in: …
Run Code Online (Sandbox Code Playgroud)

swift5 swiftui

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

如何使用没有任何页面转换或任何重新启动应用程序的方法

我目前正在使用 SwiftUI 开发一个应用程序。

我想在视图出现时使用一种方法。

对于我在下面附加的代码,我可以print在应用程序启动并在页面之间进行一些转换时使用该方法。


print但我想在重新打开应用程序时使用该方法,如下所示:

  • 1:在模拟器上运行代码(我可以看到该print方法有效)。

  • 2:按主页按钮。

  • 3:点击应用程序图标打开应用程序(我看不到该print方法有效)。

    (*) 我想使用print这里的方法。

在这种情况下我怎样才能做到我想要的呢?

在此输入图像描述


这是代码:

import SwiftUI

struct ContentView: View {
    
    @State private var selection = 0
 
    var body: some View {
        TabView(selection: $selection){
            Text("First View")
                .onAppear(){
                    print("First")
            }
                .tabItem {
                        Text("First")
                }
                .tag(0)
            
            Text("Second View")
                .tabItem {
                        Text("Second")
                }
                .tag(1)
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
Run Code Online (Sandbox Code Playgroud)

添加:

当应用程序从后台变成前台时,我找到了一种使用某些功能的方法,使用sceneWillEnterForegroundsceneWillResignActiveSceneDelegate.swift …

swift swiftui

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

当我在生产中部署 Next.js 示例项目时,为什么 CSS 不起作用?

我目前正在开发一个使用Next.js和 的Nginx应用程序Docker

\n

CSSbuild在我创建一个项目并检查浏览器中的显示后,它不起作用,如下所示。

\n

我该如何解决这个问题?

\n
\n

部署的流程和代码如下\xef\xbc\x9a

\n

1.制定下一个项目

\n
$ npx create-next-app@latest --use-npm next-nginx-docker\n
Run Code Online (Sandbox Code Playgroud)\n

2.制作Dockerfile.prod

\n
FROM node:16-alpine AS builder\n\nWORKDIR /app\n\nCOPY package.json ./\n\nCOPY package-lock.json ./\n\nRUN npm install\n\nCOPY . .\n\nRUN npm run build\n\nFROM nginx:1.19-alpine AS server\n\nCOPY ./etc/nginx.conf /etc/nginx/conf.d/default.conf\n\nCOPY --from=builder /app /\n\nEXPOSE 80\n
Run Code Online (Sandbox Code Playgroud)\n

3.制作docker-compose.prod.yml

\n
version: "3"\n\nservices:\n  app:\n    build:\n      context: .\n      dockerfile: Dockerfile.prod\n    ports:\n      - "80:80"\n
Run Code Online (Sandbox Code Playgroud)\n

4.制作nginx.conf

\n
server {\n   listen 80;\n   listen [::]:80;\n\n   server_name mydomain.com;\n   root /.next/server/pages;\n …
Run Code Online (Sandbox Code Playgroud)

node.js docker reactjs next.js

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

如何解决错误“java.net.ConnectException:无法连接到 localhost/127.0.0.1:8000”

我目前正在开发一个使用android-studiowith的应用程序Kotlin和一个使用django-rest-framework.

我想127.0.0.1使用 android 模拟器访问我的本地服务器,以从 API 方法中获取一些值。

我在堆栈溢出网站和其他网站上检查了一些问题,并参考一些文章设置了我的代码,例如在 中添加一些代码、AndroidManifest.xml制作network_security_config.xml、更改 的代理Android emulator以及更改项目中的一些代码Django rest framework

即使当我到达本地服务器中的端点时,我也会收到如下错误代码:

2020-10-07 22:37:39.318 7247-7247/com.sample.apitest I/System.out: checked
2020-10-07 22:37:39.358 7247-7280/com.sample.apitest D/NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true
2020-10-07 22:37:39.392 7247-7280/com.sample.apitest W/System.err: java.net.ConnectException: Failed to connect to localhost/127.0.0.1:8000
2020-10-07 22:37:39.394 7247-7280/com.sample.apitest W/System.err:     at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:143)
2020-10-07 22:37:39.394 7247-7280/com.sample.apitest W/System.err:     at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:112)
2020-10-07 22:37:39.394 7247-7280/com.sample.apitest W/System.err:     at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:184)
2020-10-07 22:37:39.395 7247-7280/com.sample.apitest W/System.err:     at …
Run Code Online (Sandbox Code Playgroud)

android localhost android-emulator django-rest-framework django-cors-headers

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

如何在工作表关闭时触发 onApper 方法?

我目前正在使用 SwiftUI 开发一个应用程序。

我想在从同一结构创建的对象关闭时使用一种onAppear方法。sheet

有什么办法可以做到这一点吗?


以下是代码:

BaseView.swift

import SwiftUI

struct BaseView: View {
    
    @State var isSheet:Bool = false
    
    var body: some View {
        VStack{
            VStack{
                Text("BaseView")

                Button(action:{
                    isSheet = true
                }){
                    Text("SHEET")
                }
            }
            .onAppear(){
                print("onAppear fiered")
            }
            .sheet(isPresented: $isSheet){
                Sheet()
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Sheet.swift

import SwiftUI

struct Sheet: View {
    
    @Environment(\.presentationMode) var presentationMode
    
    var body: some View {

        Button(action: {
            self.presentationMode.wrappedValue.dismiss()
        }) {
            Text("CLOSE")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Xcode:版本12.0.1

swiftui

0
推荐指数
1
解决办法
1544
查看次数