Разбира се, ето подробен преглед на това как можете да промените размера на SwiftUI Switch в Swift.
SwiftUI е рамката на Apple за изграждане на потребителски интерфейси във всички платформи на Apple със силата на Swift. Понякога разработчиците може да се натъкнат на необходимостта да коригират размера на конкретни компоненти на потребителския интерфейс, като превключвател. По подразбиране SwiftUI не позволява директна промяна на размера на Switch, но можем да използваме някои заобикалящи решения, за да постигнем това.
Нека се потопим в решението на проблема.
Създаване на персонализиран превключвател в SwiftUI
За да коригирате размера на Switch в SwiftUI, един подход е да създадете персонализиран Switch. Това ви позволява да имате пълен контрол върху външния вид и размера на Switch.
Ето пример за код, който създава персонализиран превключвател:
struct CustomSwitch: View { @Binding var isOn: Bool var body: some View { Button(action: { self.isOn.toggle() }) { Rectangle() .fill(self.isOn ? Color.green : Color.gray) .frame(width: 50, height: 30) .overlay(Circle() .fill(Color.white) .offset(x: self.isOn ? 10 : -10), alignment: self.isOn ? .trailing : .leading) .cornerRadius(15) .animation(.spring()) } } }
Разбиране на потребителския код за превключване
Нека разбием какво прави този код:
- Структурата CustomSwitch: Това дефинира нашия персонализиран изглед на SwiftUI. Има обвързване с булева стойност – състоянието на превключвателя.
- Действие на бутона: Този кодов блок на Swift определя поведението при натискане на бутона. Тук просто превключете състоянието „isOn“.
- правоъгълник: Екземпляр на структурата Rectangle на SwiftUI, определяща свойствата на формата.
- Цвят на запълване: Цветът на правоъгълника зависи от това дали „isOn“ е true или false.
- Рамка: Модификаторът на рамката тук посочва ширината и височината на персонализирания превключвател.
- Наслагване: Модификаторът за наслагване ви позволява да наслоите друг SwiftUI изглед върху съществуващия – тук бял кръг, който служи като копче за превключване.
- Изместване: Модификаторът за отместване се използва тук за преместване на кръга в зависимост от това дали „isOn“ е вярно или невярно, създавайки илюзията, че превключвателят се превключва.
- ъглов радиус: Това се отнася за закръгляване на ъглите на основния правоъгълник.
- анимация: Модификаторът на анимацията прилага spring() анимация към целия бутон – така че когато превключвате, той ще се превключва плавно.
Завършвайки
Наличието на възможност за персонализиране на размера на SwiftUI Switch може да бъде предимство при приспособяването на потребителския интерфейс към специфичните нужди на приложението. Научихме един подход за постигане на това чрез създаване на персонализиран превключвател. Приятно кодиране!
Запомнете: SwiftUI е доста гъвкав и персонализиран. Чувствайте се свободни да коригирате стойностите и свойствата в кода по-горе, за да отговарят по-добре на вашия проект и дизайнерски нужди. Ако трябва да промените размера на други компоненти на потребителския интерфейс, подходът за персонализирано създаване може да се приложи почти по същия начин.