我想编写一个 for 循环,它将为每个循环迭代 2 的幂。
例如,我想要一个这样的范围:
2, 4, 8, 16, ... , 1024
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?
我有一个自定义视图的简单列表。需要发生的是,当选择其中一项时,它需要显示该项目的详细视图。在我的代码中,当我第一次选择一个项目时,@Statet selectedListener 不会被设置,因此详细视图不会出现。如果我继续选择先前选择的相同项目,则行为保持不变。但是,如果我选择不同的项目,它会正常工作,并且我可以返回上一个项目并查看其详细视图,而不会出现问题。这是一件非常简单的事情,我正在尝试做,只是无法弄清楚我可能做错了什么。任何帮助,将不胜感激。谢谢。
struct ListenersListView<Model>: View where Model: ActiveListenerViewModel {
@ObservedObject var viewModel: Model
@State var showDetail = false
@State var selectedListener: UserProfile? = nil
var body: some View {
ScrollView {
VStack(spacing:20) {
ForEach(viewModel.allActiveListeners) { listener in
UserImageSection(listener: listener,
subtext: listener.supportAreas)
.onTapGesture(perform: {
handleTap(listener)
})
}
}
}
.padding(.horizontal,20)
.sheet(isPresented: $showDetail, content: {
if let listener = selectedListener {
ListenerDetailView(listener: listener)
}
else {
// It should never come here but when the first item is selected it does. …Run Code Online (Sandbox Code Playgroud)