Advertisement
Guest User

Untitled

a guest
Jul 21st, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. var buttonsText = ["AC", "±", "%", "÷",
  2. "7", "8", "9", "x",
  3. "4", "5", "6", "-",
  4. "1", "2", "3", "+",
  5. "0", "00", ".", "="]
  6. @State var screenValue = "0"
  7. var calculator = Calculator()
  8.  
  9. var body: some View {
  10. VStack { // Vertical Stack İçerisindeki elemanları yatay olarak alt alta ekler
  11. Spacer()
  12. VStack(alignment: .trailing) {
  13. Text(screenValue) // Hesap Makinemizin sonuç değeri.
  14. .bold()
  15. .font(.largeTitle)
  16. .padding()
  17. .gesture(
  18. DragGesture(minimumDistance: 50)
  19. .onEnded { _ in
  20. self.screenValue = self.calculator.deleteLast()
  21. }
  22. )
  23. Divider()
  24. }
  25.  
  26. ForEach((0...4)) { firstIndex in
  27. HStack(alignment: .bottom) // Horizontal Stack İçerisindeki elemanları dikey olarak yan yana sıralar.
  28. {
  29. ForEach((0...3)) { secondIndex in
  30. ZStack { // Z Satck içerisindeki elemanlar üst üste gelecek şekilde yerleştirir.
  31. Circle()
  32. .frame(width: 75, height: 75, alignment: .center)
  33. .foregroundColor(self.getColor(firstIndex: firstIndex, secondIndex: secondIndex))
  34. .padding(10)
  35. .tapAction {
  36. self.touchButton(button: self.buttonsText[(firstIndex * 4) + secondIndex])
  37. }
  38.  
  39. Text(self.buttonsText[(firstIndex * 4) + secondIndex])
  40. // .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
  41. .color(.white)
  42. .bold()
  43. .font(.title)
  44. .tapAction { // :(
  45. self.touchButton(button: self.buttonsText[(firstIndex * 4) + secondIndex])
  46. }
  47. }
  48. }
  49. }
  50. }
  51. }
  52. }
  53. func getColor(firstIndex: Int, secondIndex: Int) -> Color
  54. {
  55. if firstIndex == 0 && secondIndex != 3
  56. { return .init(red: 0.65, green: 0.65, blue: 0.65) }
  57.  
  58. if secondIndex == 3
  59. { return .orange }
  60.  
  61. return .init(red: 0.20, green: 0.20, blue: 0.20)
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement