我是SwiftUI的新手,试图在Android npm rebuild node-sass
中制作类似reverse
的东西
LinearLayoutManager
在这种情况下,一切都从底部到顶部。
我能找到的所有有用的都是messagesRecyclerView = view.findViewById(R.id.messagesRecyclerView);
manager = new LinearLayoutManager(activity, LinearLayoutManager.VERTICAL, true); // => true means reverse layout
messagesRecyclerView.setLayoutManager(manager);
相反:
Load tableview from bottom, scroll up (reverse tableview) (iOS)
tableview
但是我不知道如何将其添加到//In ViewDidLoad
conversationTableView.transform = CGAffineTransform(rotationAngle: -(CGFloat)(Double.pi));
//In cellForRowAtIndexPath
cell.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi));
中(好像它只是TableView的包装)。
这里的另一种方法:How to populate UITableView from the bottom upwards?
List
我的假设是要使用某种 List {
ForEach(itemsData.messages) { item in
ChatRow(item: item)
}
Text("Load more messages...")
.onAppear() {
print("Load more messages...")
self.itemsData.next()
}
}
或.onAppear
方法来使这项工作有效。
SwiftUI似乎还太年轻而无法深入。
另一个问题:他们是否有API可以以编程方式在列表中滚动?
希望我没有重复任何问题。
答案 0 :(得分:4)
在UITableView
上有一个技巧可以翻转表格和每个单元格。因此,它似乎从底部开始填充。您也可以在SwiftUI中做到这一点:
完整工作演示:
struct ContentView: View {
@State private var ids = [String]()
init() {
UITableView.appearance().tableFooterView = UIView()
UITableView.appearance().separatorStyle = .none
}
var body: some View {
ZStack {
List(ids, id: \.self) { id in
Text(id).scaleEffect(x: 1, y: -1, anchor: .center)
}.scaleEffect(x: 1, y: -1, anchor: .center)
Button("Touch") {
self.ids.append(UUID().uuidString)
}
}
}
}
答案 1 :(得分:0)
@cipais的答案很好。 https://stackoverflow.com/a/61036551/12208004
List(chatController.messages, id: \.self) { message in
MessageView(message.text, message.isMe)
.rotationEffect(.radians(.pi))
.scaleEffect(x: -1, y: 1, anchor: .center)
}
.rotationEffect(.radians(.pi))
.scaleEffect(x: -1, y: 1, anchor: .center)