IOS SWIFT---使用UICollectionView

上一篇我们完成了第一个用swift写的ios小程序,今天我们拓展一下那个程序,使用UICollectionView。

UICollectionView类似android中的gridview可以实现九宫格的效果。

首先我们还是打开我们的故事版main.storyboard拖拽一个Collection View

默认是带一个Collection View Cell ,相当于我们的九宫格里面的子view,我们可以往cell里面拖拽控件,这些cell需要有一个标识符"Indentifier",我们这里的标识符就叫cell

同时我们需要把控制器和视图链接

  • 提示框里面显示"Outlets"里面有fataSource和delegate
  • 数据源和委托属性与当前的视图控制器关联
  • 程序运行时,会在相关控制器中寻找相关方法

我们修改一下背景色,往cell里面放入一个label控件

我们新建一个控制器继承UICollectionViewCell

import UIKit

class CountCollectionViewCell: UICollectionViewCell {

    @IBOutlet weak var label: UILabel!
    var mUtil = Util()

    override init(frame:CGRect) {
        super.init(frame: frame)
    }
    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    func setViewLabel(index:NSIndexPath){
        self.label.text=mUtil.getCharacter(index)
    }

}

required修饰符可以看看这篇博客http://blog.csdn.net/yongyinmg/article/details/39673345

同时我们也可以看到swift定义函数的方式为 func 方法名 (方法参数) -> 返回值

接下来我们看看我们的ViewControll具体做了什么

import UIKit

class ViewController: UIViewController,UICollectionViewDataSource,UICollectionViewDelegate {

    @IBOutlet weak var textField: UITextField!

    @IBOutlet weak var mCollectionView: UICollectionView!
    var cell:CountCollectionViewCell? = nil
    var mUtil = Util()

    //当控制器的视图类加载完成时调用
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    //当系统触发内存警告时调用
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    //cell个数
    func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int{
        return 15;
    }

    //相当于android中的getview
    func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell{
         cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as CountCollectionViewCell
        cell!.setViewLabel(indexPath)
        return cell!
    }

    //具体点击的哪个cell
    func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
            textField.text = mUtil.getCharacter(indexPath)

    }

}

最重要的就是相当于android中的getview方法,我们把我们的cell回调给上层得以在界面中显示出来,接下来看看效果

时间: 2024-10-12 13:53:09

IOS SWIFT---使用UICollectionView的相关文章

[IOS]swift自定义uicollectionviewcell

刚刚接触swift以及ios,不是很理解有的逻辑,导致某些问题.这里分享一下swift自定义uicollectionviewcell 首先我的viewcontroller不是直接继承uicollectionviewcontroller,而是添加的uicollectionview到我的storyboard, 然后再新建一个swift的文件,让这个swift继承uicollectionviewcell import Foundation class SVGCell :UICollectionView

IOS 瀑布流UICollectionView实现

IOS 瀑布流UICollectionView实现 在实现瀑布流之前先来看看瀑布流的雏形(此方法的雏形 UICollectionView) 对于UICollectionView我们有几点注意事项 它和tableView不一样,ContentView的内容完全需要我们自己去添加. 它与tableview相比,他的初始化需要FlowLayout并且大部分操作在其上. UIcollectionView的实用性极强,虽然有时他并不是最好的解决方案,但是它可以很灵活的实现各种效果. 图(一) 如图,模拟器

iOS:Swift界面实例1, 简单界面

Apple推出了基于Objective-C的新语言Swift. 通过实例, 我们可以很好的感受这门新语言 注意事项: 在XCode6_Beta中, 如果有中文, IDE的自动补全功能就会失效, 所以开始调试的时候可以先用英文, 后面再用中文替代. 1. 新建iOS -> Single View Application. 2. 修改AppDelegate.swift文件 1 // 2 // AppDelegate.swift 3 // UIByCode_Swift_1_HelloWorld 4 /

iOS - Swift UISearchController仿微信搜索框

0x01.创建一个UISearchController 如果传入的searchController为nil,则表示搜索的结果在当前控制器中显示,现在我让它在searchVC中显示. // 创建searchResultVC let searchVC = UIViewController() // 设置背景颜色为红色 searchVC.view.backgroundColor = UIColor.red let searchController = UISearchController(search

iOS.UIKit.12.UICollectionView

一.案例介绍:以集合形式展现图片,如图01 图01 二.案例步骤: 1.选择Simple View Aplication,取名cq.38.集合视图,如图02 图02 2.Main.storyboard,如图03 图03 3.events.plist,如图04,05 4.CQ38ViewController.h #import <UIKit/UIKit.h> @interface CQ38ViewController : UICollectionViewController @property

ios Swift 备忘录

Variables var myInt = 1 var myExplicitInt: Int = 1 // explicit type var x = 1, y = 2, z = 3 // declare multiple integers myExplicitInt = 2 // set to another integer value Constants let myInt = 1 myInt = 2 // compile-time error! Strings var myString =

ios Swift 资源池

Swift入门教程: http://www.cocoachina.com/applenews/devnews/2014/0604/8661.html Swift视频教程: http://www.cocoachina.com/bbs/read.php?tid=204280 Swift官方文档(PDF版): http://www.cocoachina.com/bbs/read.php?tid=204446 Swift官方文档(网页版): https://developer.apple.com/lib

ios Swift 之github

1. 软件类 a) 作者集合 http://nondot.org/sabre/ b) swift for facebook SWIFT是一个易于使用的,基于注解的Java来创建勤俭节约序列化类型和服务库. https://github.com/facebook/swift 2. 游戏类 a)FlappySwift https://github.com/fullstackio/FlappySwift b) 2048 https://github.com/austinzheng/swift-2048

ios swift reduce Method

Swift’s API includes many functions and instance methods that reflect its functional programming heritage. A prime example is called reduce.  You can reduce a collection of values down to just one value, such as calculating the sum of every person’s

ios Swift 算法

// Playground - noun: a place where people can play import Cocoa var nums = Int[]() for _ in 1...50 { nums.append(random()) } nums ////冒泡排序 /* var count = 0; for(var i = 0 ; i < nums.count-1; i++){ for(var j = 0; j < nums.count-i-1;j++){ count++; if