| | |
| | | |
| | | var valid :ValidState = .VALID; |
| | | |
| | | var icon : (any View)? = nil; |
| | | var icon : IconInfo? = nil; |
| | | |
| | | var text : String? = nil; |
| | | |
| | |
| | | } |
| | | |
| | | var body: some View { |
| | | //登录按钮 |
| | | Button(action: { |
| | | if(valid == .INVALID){ |
| | | return |
| | |
| | | |
| | | ZStack() {// iOS |
| | | HStack() {// iOS |
| | | if let iconView = icon { |
| | | AnyView(iconView) |
| | | if let info = icon{ |
| | | Image(systemName: info.name) |
| | | .resizable() |
| | | .frame(width: info.size.width, height: info.size.height) |
| | | .aspectRatio(contentMode: .fit) |
| | | .foregroundColor(Color.white) |
| | | } |
| | | if let str = text { |
| | | Text(str) |
| | | .font(Font.system(size: 16)) |
| | | .foregroundColor(Color.init("ColorWhite")) |
| | | .foregroundColor(Color.white) |
| | | .frame(width: .infinity, height: 40) |
| | | } |
| | | }.frame(minWidth: 40, maxHeight: 40).padding(EdgeInsets(top: 0, leading: 15, bottom: 0, trailing: 15)) |
| | | }.frame(maxHeight: 40).background( |
| | | RoundedRectangle(cornerRadius: 20, style: .continuous) |
| | | .fill(Color.init(valid == .INVALID ?"ColorGray":"ColorText")) |
| | | .fill(valid == .INVALID ? Color.colorGray : Color.colorText) |
| | | ) |
| | | |
| | | }.buttonStyle( TextBtnStyle()) |
| | |
| | | |
| | | struct MButton_Previews: PreviewProvider { |
| | | static var previews: some View { |
| | | MButton(icon: IconPortrait()) |
| | | MButton(icon: Icons.IMAGE_MUTE) |
| | | } |
| | | } |