收藏视图定位像 instagram app swift
Posted
技术标签:
【中文标题】收藏视图定位像 instagram app swift【英文标题】:Collection View positioning like instagram app swift 【发布时间】:2017-03-14 12:36:47 【问题描述】:我一直在编写像 instagram 这样的应用程序来学习 swift 和 ios 编程。现在我创建了 UIStackView,它是一个顶部栏,以及 3 个底部按钮,用于发布请求和更改图像。
我遇到的问题 - 我无法在 CollectionView 上设置位置、宽度和删除单元格间距。我想要: 所有设备上的 CollectionView 全宽 图像之间的单元格间距 = 1 CollectionView 应位于顶部栏和底部按钮全高之间
我现在有什么?
我的模拟器屏幕:http://prntscr.com/d1mmu1
我的故事板屏幕:http://prntscr.com/d1mnhr
我曾尝试使用 StoryBoard 执行此操作,更改了所有参数,但还没有达到我的目标。 如果我向 CollectionView 和应用程序的主视图添加相等的高度,它会占用所有屏幕,并且在滚动后它会消失...... 如何在其上设置该位置和宽度、高度和单元格间距?
here is a code of my viewcontroller for CollectionView -
// MARK: - UICollectionViewDataSource 协议
// tell the collection view how many cells to make
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
return self.items.count
// make a cell for each cell index path
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
// get a reference to our storyboard cell
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! MyCollectionViewCell
// Use the outlet in our custom class to get a reference to the UILabel in the cell
cell.imageView.image = UIImage(named: "main/p\(self.items[indexPath.item].code)/main/main.jpg")
print("main_card_images/p\(self.items[indexPath.item].code)/main/main")
return cell
// MARK: - UICollectionViewDelegate protocol
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
// handle tap events
print("You selected cell #\(indexPath.item)!")
print(self.items[indexPath.item])
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
let yourNextViewController = (segue.destination as! ViewControllerCard)
let indexPath = collectionView.indexPath(for: sender as! UICollectionViewCell)
yourNextViewController.mainCardImage = self.items[(indexPath?.item)!]
【问题讨论】:
查看我的答案***.com/questions/40325327/… 【参考方案1】:试试这个代码。
注意:以下代码仅适用于在所有 iPhone 型号上测试的 4 列布局。如果您想要不同的列数。您需要调整单元格的宽度和高度或查看我的其他答案@ 987654321@
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize
let layout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout
layout.sectionInset = UIEdgeInsets(top: 3, left: 3, bottom: 3, right: 3)
layout.minimumInteritemSpacing = 03
layout.minimumLineSpacing = 03
layout.invalidateLayout()
return CGSize(width: ((self.view.frame.width/4) - 4), height:((self.view.frame.width / 4) - 4));
输出:
【讨论】:
以上是关于收藏视图定位像 instagram app swift的主要内容,如果未能解决你的问题,请参考以下文章
如何创建一个像 Instagram 主页一样的页面视图控制器,它也可以滚动标签栏?
UISearchController 像 Instagram 探索选项卡