我目前正在使用 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
我目前正在使用 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) 我目前正在使用 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) 我目前正在使用 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)
添加:
当应用程序从后台变成前台时,我找到了一种使用某些功能的方法,使用sceneWillEnterForeground或sceneWillResignActiveSceneDelegate.swift …
我目前正在开发一个使用Next.js和 的Nginx应用程序Docker。
CSSbuild在我创建一个项目并检查浏览器中的显示后,它不起作用,如下所示。
我该如何解决这个问题?
\n部署的流程和代码如下\xef\xbc\x9a
\n1.制定下一个项目
\n$ npx create-next-app@latest --use-npm next-nginx-docker\nRun Code Online (Sandbox Code Playgroud)\n2.制作Dockerfile.prod
\nFROM 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\nRun Code Online (Sandbox Code Playgroud)\n3.制作docker-compose.prod.yml
\nversion: "3"\n\nservices:\n app:\n build:\n context: .\n dockerfile: Dockerfile.prod\n ports:\n - "80:80"\nRun Code Online (Sandbox Code Playgroud)\n4.制作nginx.conf
\nserver {\n listen 80;\n listen [::]:80;\n\n server_name mydomain.com;\n root /.next/server/pages;\n …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个使用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
我目前正在使用 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