作者归档 Tobias Stephan

通过Tobias Stephan

SwiftUI菜单按钮示例汉堡菜单

给你的。这里有一个Swift UI汉堡包菜单的现成示例。你可以通过滑动或点击汉堡包符号来轻松隐藏菜单。只需在默认设置下创建一个新的SwiftUI项目作为一个单一的应用程序即可。简单的复制和粘贴一切,玩转项目。

//
//  ContentView.swift
//  SlideMenuSwiftSample
//
//  Created by T. Stephan on 03.05.20.
//  Copyright © 2020 eCommerce - Tobias Stephan. All rights reserved.
//

import SwiftUI

struct ContentView: View {
    @State var showHamburgerMenu = false
    
    
    var body: some View {
        
        
        let drag = DragGesture()
            .onEnded {
                if $0.translation.width < -100 {
                    withAnimation {
                        self.showHamburgerMenu = false
                    }
                }
        }
        
        return NavigationView {
            GeometryReader { geometry in
                ZStack(alignment: .leading) {
                    MainView(showHamburgerMenu: self.$showHamburgerMenu)
                        .frame(width: geometry.size.width, height: geometry.size.height)
                        .offset(x: self.showHamburgerMenu ? geometry.size.width/2 : 0)
                        .disabled(self.showHamburgerMenu ? true : false)
                    
                    if self.showHamburgerMenu {
                        MenuView()
                            .frame(width: geometry.size.width/2)
                            .transition(.move(edge: .leading))
                    }
                }
                .gesture(drag)
                
            }
            .navigationBarTitle("Side Menu", displayMode: .inline)
            .navigationBarItems(leading: (
                Button(action: {
                    withAnimation {
                        self.showHamburgerMenu.toggle()
                    }
                }) {
                    Image(systemName: "line.horizontal.3")
                        .imageScale(.large)
                }
            ))
        }
        
    }
}

struct MainView: View {
    @Binding var showHamburgerMenu: Bool
    
    var body: some View {
        Button(action: {
            withAnimation {
                self.showHamburgerMenu = true
            }
        }) {
            Text("Show Menu")
        }
    }
}

struct MenuView: View {
    var body: some View {
        VStack(alignment: .leading) {
            HStack {
                Image(systemName: "person")
                    .foregroundColor(.gray)
                    .imageScale(.large)
                NavigationLink(destination: ProfileView()) {
                    Text("Profile")
                        .foregroundColor(.gray)
                        .font(.headline)
                }
            }
            .padding(.top, 100)
            HStack {
                Image(systemName: "envelope")
                    .foregroundColor(.gray)
                    .imageScale(.large)
                NavigationLink(destination: MessagesView()) {
                    Text("Messages")
                        .foregroundColor(.gray)
                        .font(.headline)
                }
            }
            .padding(.top, 30)
            HStack {
                Image(systemName: "gear")
                    .foregroundColor(.gray)
                    .imageScale(.large)
                NavigationLink(destination: SettingsView()) {
                    Text("Settings")
                        .foregroundColor(.gray)
                        .font(.headline)
                }
            }
            .padding(.top, 30)
            Spacer()
        }
        .padding()
        .frame(maxWidth: .infinity, alignment: .leading)
        .background(Color(red: 32/255, green: 32/255, blue: 32/255))
        .edgesIgnoringSafeArea(.all)
    }
}

struct SettingsView: View {
    var body: some View {
        VStack{
            Text("Settings Subview")
        }
    }
}
struct MessagesView: View {
    var body: some View {
        VStack{
            Text("Messages Subview")
        }
    }
}
struct ProfileView: View {
    var body: some View {
        VStack{
            Text("Profile Subview")
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

通过Tobias Stephan

Dremel 3D45 3D40 APP软件的凸轮查看器

通过此应用,您可以监控多达3台Dremel 3D45或3D40 Idea Builder 3D打印机。众所周知,Dremel 3D45有摄像头,与Dremel 3D40 Idea Builder不同的是,Dremel 3D45有摄像头。通过这款适用于上述Dremel 3D打印机的应用程序,您可以监控这两种设备类型的状态。

新版本1.17,从2020年5月2日开始。
现在,Dremel打印机的APP已经完全翻译成5种语言。同时,打印机送来的反馈也被翻译了出来。该应用有英文、德文、法文和意大利文、中文、日文和俄文四种语言。

下载苹果商店

2020年4月23日的新版本1.14。
更新到IOS版本13.4.1后,导致部分用户的应用崩溃。这个版本的问题就解决了。

通过这个应用程序,您可以观看多达3台Dremel 3D45 / 3D40打印机创建3D对象。此外,还有详细的状态信息,比如在打印对象完成之前的时间计算,或者是取消打印的可能性。如果您想在打印过程中一目了然地检查是否一切正常,这一点特别有用。这样做的好处是,可以及时介入,将物体完美的融入到这个世界中。只需在设置下输入设备的内部IP地址就可以了。使用 Dremel 3D45 上的设置,您可以设置一个本地 IP 地址或使用自动分配的 V4 IP 地址。您可以在设置中找到Dremel 3D45的IP地址。状态显示包含了进度、喷嘴温度、时间、打开或关闭门、平台温度、腔体温度、打印文件名称和文件类型等信息。

当前状态信息,如对象的预期完成时间,以及进度条,单位为百分比或喷嘴的当前温度。门或盖子是关上了吗?该应用显示它。腔体或平台的温度,有了这个APP,你的温度是最新的。现在,您可以通过点击取消按钮直接从应用程序中取消打印。

适用于Dremel 3D45的应用程序–状态和控制您的3D打印机!