gpt4 book ai didi

ios - Swift - 在一个 View 中加载不同的 View

转载 作者:行者123 更新时间:2023-11-29 05:16:48 25 4
gpt4 key购买 nike

我正在开发一个Wishlist-App,但我遇到了一个需要一些解释的问题:

为了更好地理解图片:

我的主页(第一张图片)包含一个CollectionView,用户可以在其中添加项目(“不同的愿望 list ”),然后看起来像第二张图片:

enter image description here enter image description here

目前,用户可以单击“主要愿望 list ”,如下所示:

enter image description here

用户可以“添加愿望”(点击底部的 + 按钮),然后将其添加到“主要愿望 list ”TableView

代码:

我的“主要愿望 list ” - cell 位于其自己的自定义类中,用户可以添加的所有其他“愿望 list ”(“TestList”、“TestList2”)都是一个类。

点击“主愿望 list ”-单元格后出现的TableView不是另一个ViewController。它只是一个View,我用view.transoform让它出现/消失。

这是我的“WishlistView”(第三张图片):

let wishlistView: UIView = {
let v = UIView()
v.translatesAutoresizingMaskIntoConstraints = false
v.backgroundColor = .darkGray
v.layer.cornerRadius = 30
return v
}()

lazy var theTableView: WhishlistTableViewController = {
let v = WhishlistTableViewController()
v.view.layer.masksToBounds = true
v.view.layer.borderColor = UIColor.white.cgColor
v.view.backgroundColor = .clear
v.view.layer.borderWidth = 7.0
v.view.translatesAutoresizingMaskIntoConstraints = false
return v
}()

let dismissWishlistViewButton: UIButton = {
let v = UIButton()
v.setImage(UIImage(named: "dropdown"), for: .normal)
v.translatesAutoresizingMaskIntoConstraints = false
v.addTarget(self, action: #selector(hideView), for: .touchUpInside)
return v
}()

let menueButton: UIButton = {
let v = UIButton()
v.setImage(UIImage(named: "menueButton"), for: .normal)
v.translatesAutoresizingMaskIntoConstraints = false
v.addTarget(self, action: #selector(menueButtonTapped), for: .touchUpInside)
return v
}()

let wishlistLabel: UILabel = {
let v = UILabel()
v.text = "Main Wishlist"
v.font = UIFont(name: "AvenirNext-Bold", size: 30)
v.textColor = .white
v.translatesAutoresizingMaskIntoConstraints = false
return v
}()

let wishCounterLabel: UILabel = {
let v = UILabel()
v.text = "5 unerfüllte Wünsche"
v.font = UIFont(name: "AvenirNext", size: 12)
v.textColor = .white
v.font = v.font.withSize(12)
v.translatesAutoresizingMaskIntoConstraints = false
return v
}()

let wishlistImage: UIImageView = {
let v = UIImageView()
v.image = UIImage(named: "iconRoundedImage")
v.translatesAutoresizingMaskIntoConstraints = false
return v
}()

它会在用户点击“主要愿望 list ”-单元格后出现,如下所示:

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

if indexPath.item == 0 {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MainWishlistCell", for: indexPath) as! MainWishlistCell

cell.wishlistTapCallback = {
// let wishlistView appear
UIView.animate(withDuration: 0.3, delay: 0, options: .curveEaseIn, animations: {
self.wishlistView.transform = CGAffineTransform(translationX: 0, y: 0)
})
// let welcomeText disappear
UIView.animate(withDuration: 0.2, delay: 0, options: .curveEaseOut, animations: {
self.welcomeTextLabel.transform = CGAffineTransform(translationX: 0, y: 0)
})

}
return cell
}

else if indexPath.item <= theData.count {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ContentCell", for: indexPath) as! ContentCell

cell.testLabel.text = theData[indexPath.item - 1]
cell.testImage.image = self.image
cell.testImage.image = imageData[indexPath.item - 1]

return cell
}

// past the end of the data count, so return an "Add Item" cell
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "AddItemCell", for: indexPath) as! AddItemCell

// set the closure
cell.tapCallback = {

self.listNameTextfield.becomeFirstResponder()

// let newListView appear
UIView.animate(withDuration: 0.3, delay: 0, options: .curveEaseOut, animations: {
self.blurrImage.alpha = 0.96
self.blurrImage.transform = CGAffineTransform(translationX: 0, y: 0)
self.newListView.transform = CGAffineTransform(translationX: 0, y: 0)
self.view.layoutIfNeeded()
})
}
return cell
}

问题:

最后,每个单元格(愿望 list )都应该位于View上(具有自己的TableView和相应的UIImageLabel。但是,如何为创建的每个新“愿望 list ”加载新的 TableView 呢?

我不是在这里寻找特定的代码答案!我对此很陌生,我不知道如何实现这一点。因此,如果您能向我解释我如何继续以及实现这项任务的基本想法是什么,我将非常感激,提前致谢:)如果有任何不清楚的地方,请告诉我。

最佳答案

只需在那里实现另一个 UItableViewController,可能使用容器 View 。它将包含的 View 将是您的 TestList (UITableViewController)

关于ios - Swift - 在一个 View 中加载不同的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59109333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com