Добавьте представление в качестве параметра в пользовательский ViewModifier. ⇐ IOS
Добавьте представление в качестве параметра в пользовательский ViewModifier.
Это скорее синтаксический вопрос. Я пытаюсь передать представление в инициализатор ViewModifier без использования AnyView.
В настоящее время у меня что-то работает с использованием AnyView, но я хотел бы использовать общий синтаксис представления, как если бы вы затем передавали «некоторое представление» представлению, описанному в этом ответе здесь:
Как передать одно представление SwiftUI в качестве переменной в другую структуру представления
Кажется, я не могу заставить его работать с ViewModifier.
Намерение (как показано в примере) состоит в том, чтобы модификатор передал вычисленное значение во внутренний вид. Я также был бы рад использовать @ViewBuilder для указания свойства InnerView, поскольку это, вероятно, будет иметь тот же эффект.
Вот пример модификатора:
struct SampleModifier: ViewModifier { пусть параметр1: CGFloat пусть внутреннийView: (CGFloat, CGFloat) -> AnyView // Предположим, что это расчетные состояния пусть вычисляетсяParam1: CGFloat = 100 пусть вычисляетсяParam2: CGFloat = 100 тело функции (содержание: Содержание) -> некоторый вид { ZStack { HStack { Разделитель() внутреннийView(self.calculatedParam1, self.calculatedParam2) .padding(.leading, 10) .frame(ширина: параметр1) } content.frame(ширина: 100, высота: 100) } } } И его использование:
struct SampleView: Просмотр { var body: some View { Прямоугольник() .modifier(SampleModifier(param1: 150, InternalView: { param1, param2 в вернуть AnyView( Text("Внутренний вид: \(param1) - \(param2)") ) })) } }
Это скорее синтаксический вопрос. Я пытаюсь передать представление в инициализатор ViewModifier без использования AnyView.
В настоящее время у меня что-то работает с использованием AnyView, но я хотел бы использовать общий синтаксис представления, как если бы вы затем передавали «некоторое представление» представлению, описанному в этом ответе здесь:
Как передать одно представление SwiftUI в качестве переменной в другую структуру представления
Кажется, я не могу заставить его работать с ViewModifier.
Намерение (как показано в примере) состоит в том, чтобы модификатор передал вычисленное значение во внутренний вид. Я также был бы рад использовать @ViewBuilder для указания свойства InnerView, поскольку это, вероятно, будет иметь тот же эффект.
Вот пример модификатора:
struct SampleModifier: ViewModifier { пусть параметр1: CGFloat пусть внутреннийView: (CGFloat, CGFloat) -> AnyView // Предположим, что это расчетные состояния пусть вычисляетсяParam1: CGFloat = 100 пусть вычисляетсяParam2: CGFloat = 100 тело функции (содержание: Содержание) -> некоторый вид { ZStack { HStack { Разделитель() внутреннийView(self.calculatedParam1, self.calculatedParam2) .padding(.leading, 10) .frame(ширина: параметр1) } content.frame(ширина: 100, высота: 100) } } } И его использование:
struct SampleView: Просмотр { var body: some View { Прямоугольник() .modifier(SampleModifier(param1: 150, InternalView: { param1, param2 в вернуть AnyView( Text("Внутренний вид: \(param1) - \(param2)") ) })) } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение