您好我想将collectionView完全显示为上图.我知道它负责UICollectionViewFlowLayout,但无法做到.非常感谢帮助.这是我的代码
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let yourWidth = (collectionView.bounds.width - 4) / 3.0
let yourHeight = yourWidth
return CGSize(width: yourWidth, height: yourHeight)
}
Run Code Online (Sandbox Code Playgroud) ios uicollectionview swift swift4 uicollectionviewflowlayout
警告:
The item width must be less than the width of the UICollectionView minus the section insets left and right values, minus the content insets left and right values.
代码:
extension SaleViewController {
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator){
checkEstimatedSize()
}
func checkEstimatedSize(){
if(DeviceType.IS_IPAD || UIDevice.current.orientation == .landscapeLeft || UIDevice.current.orientation == .landscapeRight){
if let layout = myCollectionView.collectionViewLayout as? UICollectionViewFlowLayout {
layout.estimatedItemSize = CGSize(width: 1, height: 1)
layout.invalidateLayout()
}
}else{
if let layout = myCollectionView.collectionViewLayout as? UICollectionViewFlowLayout {
layout.estimatedItemSize …Run Code Online (Sandbox Code Playgroud) ios uicollectionview uicollectionviewlayout swift uicollectionviewflowlayout
我在用
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: 400, height: 600)
}
Run Code Online (Sandbox Code Playgroud)
指定 myCollectionView的像元大小。它工作正常,但是一旦我(UILabel.width == ContentView.width)在单元格UILabel内部添加宽度约束ContentView,单元格的宽度就会缩小到 的固有宽度UILabel。
我正在使用UICollectionViewDelegateFlowLayout水平滚动。
如何强制坚持ContentView我指定的单元格大小并让子视图遵循自动布局约束?
autolayout uicollectionview swift uicollectionviewflowlayout
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if collectionView == self.collectionViewVideo {
var collectionViewSize = collectionViewVideo.frame.size
collectionViewSize.width = collectionViewSize.width/3.0 //Display Three elements in a row.
return collectionViewSize
} else {
return CGSize(width: 60, height: 60)
}
}
Run Code Online (Sandbox Code Playgroud)
ios uicollectionview swift swift4 uicollectionviewflowlayout
您好,我想使用 uicollectionview 进行拖放。当执行拖放时,它正在移动内容,我想像照片中那样进行操作。我想让盒子自己搬。例如; 当我将照片拖动到 4 时,我应该保留带有完整测量值的红色区域。将照片 6 交换到照片 1,就像将照片 3 移到左侧一样。我在 uicollectionview 中研究了很多,但我无法\xe2\x80\x99 找到类似的东西。请帮我
\n\nimport UIKit\n\nfinal class ViewController: UIViewController {\n\n@IBOutlet weak var collectionView: UICollectionView!\n\n var cellIds = ["image 1","image 2","image 3","image 4","image 5","6","7"]\n override func viewDidLoad() {\n super.viewDidLoad()\n\n let flowLayout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout\n flowLayout.estimatedItemSize = CGSize(width: 200, height: 10)\n\n let gestureRecognizer = UILongPressGestureRecognizer(target: self,\n action: #selector(self.handleLongPress(gestureRecognizer:)))\n collectionView.addGestureRecognizer(gestureRecognizer)\n}\n\n@objc func handleLongPress(gestureRecognizer: UILongPressGestureRecognizer) {\n\n guard let view = gestureRecognizer.view else { return }\n let location = gestureRecognizer.location(in: view)\n\n switch gestureRecognizer.state {\n …Run Code Online (Sandbox Code Playgroud)