Как вы реализуете функции в SwiftUI? - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть пользовательский интерфейс с серией изображений и текстовых полей, и мне интересно, почему я не могу определить функцию для каждого изображения и текстового поля и передать переменную для каждого.

Вот текстовая функция, которую я хочу определить:

   func textBox(textIn: String) {
    Text("\(textIn)")
    .fontWeight(.bold)
    .foregroundColor(Color.white)
    .background(Color.blue)
    .offset(y: 65)
}

, и когда я хочу вызвать функцию, она говорит мне

Тип '()' не может соответствовать 'View' ; только типы struct / enum / class могут соответствовать протоколам

var body: some View {
    VStack{
    NavigationView {
        ScrollView {

textBox(textIn: "Test!")

Я программировал всего несколько месяцев, и я работаю в Swift меньше недели, поэтому я Прошу прощения, если это базовый c вопрос.

Заранее спасибо

Мили

1 Ответ

1 голос
/ 20 апреля 2020

что вам нужно сделать, это вернуть View из вашей функции, например так:

import SwiftUI

struct ContentView: View {

var body: some View {
    VStack{
        NavigationView {
            ScrollView {
                textBox(textIn: "Test!")
            }
        }
    }
}

func textBox(textIn: String) -> AnyView {
    AnyView(Text("\(textIn)")
        .fontWeight(.bold)
        .foregroundColor(Color.white)
        .background(Color.blue)
        .offset(y: 65)
    )
}
}

это даже работает с этим:

func textBox(textIn: String) -> some View {
    Text("\(textIn)")
        .fontWeight(.bold)
        .foregroundColor(Color.white)
        .background(Color.blue)
        .offset(y: 65)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...