Добавьте представление в качестве параметра в пользовательский ViewModifier.IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Добавьте представление в качестве параметра в пользовательский ViewModifier.

Сообщение Anonymous »


Это скорее синтаксический вопрос. Я пытаюсь передать представление в инициализатор 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)") ) })) } }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»