Мой собственный стиль кнопок выглядит так.
struct DefaultButtonStyle: ButtonStyle {
func makeBody(configuration: Configuration) -> some View {
configuration.label
.padding()
.frame(minWidth: 0, maxWidth: .infinity)
.foregroundColor(.white)
.background(RoundedRectangle(cornerRadius: 4)
.fill(configuration.isPressed ? Color.black : Color.green)
)
}
}
Пример реализации использования настраиваемого стиля кнопки.
Button(action: { self.viewModel.login() }) {
Text("Sign In")
.font(.headline)
}
.buttonStyle(DefaultButtonStyle())
.frame(minWidth: 0, maxWidth: 380)
.padding([.leading, .trailing], 27.5)
Мой код предварительного просмотра.
#if DEBUG
struct LoginView_Previews: PreviewProvider {
static var previews: some View {
LoginView (viewModel: LoginViewModel()).environment(\.verticalSizeClass, .regular)
}
}
#endif
Когда Я поместил пользовательский стиль в тот же файл, что и представление. Предварительный просмотр в порядке. Но когда я переместил пользовательский стиль в его собственный файл (с целью его повторного использования во всем приложении). Предварительный просмотр выдает ошибку.
Compiling failed: type 'Any' has no member 'leading'
Нужно ли мне что-то добавлять в LoginView_Previews
, чтобы оно загружалось в предварительном просмотре? Что я делаю не так?