第一次加载时自动选择项目
auto selected Item at first load
我正在使用水平 collectinview 来显示项目。当用户 select/deselect 我是 adding/removing 文本下方的白色边框时。
这是代码
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if let cell = collectionView.cellForItem(at: indexPath) {
if cell.isSelected {
bottomLayer.frame = CGRect(x: 0, y: (cell.frame.height) - 7, width: (cell.frame.width), height: 3)
bottomLayer.backgroundColor = UIColor.white.cgColor
cell.layer.addSublayer(bottomLayer)
}
}
}
func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) {
if collectionView.cellForItem(at: indexPath) != nil {
bottomLayer.backgroundColor = UIColor.green
}
}
我想要的是当我加载集合视图时,第一个项目应该加载 bottomLayer
(带下划线)
我尝试了代码
let indexPathForFirstRow = IndexPath(row: 0, section: 0)
CollectionView.selectItem(at: indexPathForFirstRow, animated: true, scrollPosition: [])
collectionView(CollectionView, didSelectItemAt: indexPathForFirstRow)
但没有用。我搜索了很多问题,但大多数问题都有相同的解决方案,但在我的案例中不起作用。有人可以帮我吗?
如果您在按钮操作上加载 CollectionView
,则
CollectionView.layoutIfNeeded()
let indexPathForFirstRow = IndexPath(row: 0, section: 0)
CollectionView.selectItem(at: indexPathForFirstRow, animated: true, scrollPosition: [])
collectionView(CollectionView, didSelectItemAt: indexPathForFirstRow)
在viewDidAppear
中调用它:
override func viewDidAppear(_ animated: Bool) {
let indexPathForFirstRow = IndexPath(row: 0, section: 0)
CollectionView.selectItem(at: indexPathForFirstRow, animated: true, scrollPosition: [])
collectionView(CollectionView, didSelectItemAt: indexPathForFirstRow)
}
我正在使用水平 collectinview 来显示项目。当用户 select/deselect 我是 adding/removing 文本下方的白色边框时。
这是代码
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if let cell = collectionView.cellForItem(at: indexPath) {
if cell.isSelected {
bottomLayer.frame = CGRect(x: 0, y: (cell.frame.height) - 7, width: (cell.frame.width), height: 3)
bottomLayer.backgroundColor = UIColor.white.cgColor
cell.layer.addSublayer(bottomLayer)
}
}
}
func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) {
if collectionView.cellForItem(at: indexPath) != nil {
bottomLayer.backgroundColor = UIColor.green
}
}
我想要的是当我加载集合视图时,第一个项目应该加载 bottomLayer
(带下划线)
我尝试了代码
let indexPathForFirstRow = IndexPath(row: 0, section: 0)
CollectionView.selectItem(at: indexPathForFirstRow, animated: true, scrollPosition: [])
collectionView(CollectionView, didSelectItemAt: indexPathForFirstRow)
但没有用。我搜索了很多问题,但大多数问题都有相同的解决方案,但在我的案例中不起作用。有人可以帮我吗?
如果您在按钮操作上加载 CollectionView
,则
CollectionView.layoutIfNeeded()
let indexPathForFirstRow = IndexPath(row: 0, section: 0)
CollectionView.selectItem(at: indexPathForFirstRow, animated: true, scrollPosition: [])
collectionView(CollectionView, didSelectItemAt: indexPathForFirstRow)
在viewDidAppear
中调用它:
override func viewDidAppear(_ animated: Bool) {
let indexPathForFirstRow = IndexPath(row: 0, section: 0)
CollectionView.selectItem(at: indexPathForFirstRow, animated: true, scrollPosition: [])
collectionView(CollectionView, didSelectItemAt: indexPathForFirstRow)
}