我想实现如下所示的视图层次结构,以便整个视图都可滚动:
UIScrollView
图像视图
收藏夹视图
但是这里的很多人都说,最好使用集合视图随附的标头。我已经做到了,但是现在有了一个新问题:在滚动集合视图时,我对viewForSupplementaryElementOfKind函数中的标头单元所做的任何配置都在重复(例如:如果我以编程方式在viewForSupplementaryElementOfKind函数中创建新视图,当我滚动时,该视图将继续创建)
我有点发觉这是因为我正在使用dequeueReusableSupplementaryView使标题出队。但是我已经尝试过搜索Apple文档,并且没有其他代码可用于实例化标题视图而不使其可重用。
是否可以使用UICollectionView创建如上所述的视图控制器?
我尝试将部分的数目设置为1,希望它只能被重用一次,但是不起作用。
编辑:还尝试使用UICollectionViewDelegateFlowLayouta并使用UICollectionView代替UIViewController和UICollectionViewDataSource等设置标题大小。
func collectionView(_ collectionView: UICollectionView,
viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView
{
switch kind {
case UICollectionView.elementKindSectionHeader:
guard
let headerView = collectionView.dequeueReusableSupplementaryView(
ofKind: kind,
withReuseIdentifier: "DiscoverHeader",
for: indexPath) as? DiscoverHeader
else {
fatalError("Invalid view type")
}
// Rotating arrow image
headerView.arrowImg.transform = headerView.arrowImg.transform.rotated(by: CGFloat.pi/0.67)
return headerView
default:
assert(false, "Invalid element type")
}
}
答案 0 :(得分:0)
为什么$transactions = \Stripe\BalanceTransaction::all([
"created" => [
"gte" => strtotime('-2 month'),
"lte" => strtotime('1 day')
]
]);
foreach ($transactions->autoPagingIterator() as $transaction) {
// Do something with $transaction
print_r($transaction->id . " : " . date("Y-m-d\TH:i:s\Z", $transaction->created) . "\n");
}
中没有UIImageView
和UICollectionView
?
您绝对可以创建一个UIScrollView
并在其中添加一个UIScrollView
和一个UIImageView
。
但是,这将无法正常工作。这是因为您正在将UICollectionView
嵌入另一个scrollView(UICollectionView)
中。 scrollView
Scrolling
垂直会阻碍外部collectionView
的{{1}}。
解决方案:
尝试使用scrolling
方法给出scrollView
中的height
,
header view
还要将UICollectionViewDelegateFlowLayout's
的{{1}}设置为func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
return CGSize(width: collectionView.bounds.width, height: 100.0) //give the height as per your requirement...
}
。