Как перетасовать текст в текстовом представлении? - PullRequest
0 голосов
/ 21 июня 2020

Привет, я новичок в Swift, и я создал текстовое представление с текстом, и теперь я хочу, чтобы при нажатии на кнопку текст перемещался в случайном порядке. Сначала я работал с shuffle (), но он может только перемешивать текст в массивах. Проблема в том, что текст каждый раз мог быть разным. Поэтому я не могу создать фиксированный массив. Я также попытался создать пустой массив и установить его в текст, но это не удалось. Как перетасовать текст в текстовом представлении?

1 Ответ

0 голосов
/ 21 июня 2020

Конечно, не самая элегантная версия, но она делает то, что вы от нее хотите: (Проверено iOS 13.5)

struct ContentView: View {
    
    @State var text = "There will be text"

    
    var body: some View {
        VStack() {
            
            Text(self.text)
            
            Button(action: {
                // new empty array. Could also be outside
                var arr: Array<String> = []

                //Split current text at every space
                for s in self.text.split(separator: " ") { 
                    arr.append(String(s)) //append to new array

                    // if length of new array is the length of all substrings
                    if arr.count == self.text.split(separator: " ").count {
                        arr.shuffle()
                        self.text = "" // empty Text field
                        for s in arr {
                            self.text.append(s + " ")
                        }
                    }
                }
            }){
                Text("Button")
            }
        }
    }
    
}
...