Giter Site home page Giter Site logo

collectionview-uibutton-uisegmentedcontrol-listen-to-click's Introduction

CollectionView-UIButton-UISegmentedControl-Listen-to-click

Swift 3, CollectionView

override func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
    let header = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: headerId, for: indexPath) as! AppDetailHeader
    header.app = app

    header.segmentedControl.addTarget(self, action: #selector(segmentedControlAction(sender:)), for: UIControlEvents.valueChanged)
    
    return header
}

func segmentedControlAction(sender: UISegmentedControl) {
    
    switch sender.selectedSegmentIndex {
    case 0:
        segmentControl = 0
        collectionView?.reloadData()
    case 1:
        segmentControl = 1
        collectionView?.reloadData()
    case 2:
        segmentControl = 2
        collectionView?.reloadData()
    default:
        break
    }
}


let segmentedControl: UISegmentedControl = {
    let sc = UISegmentedControl(items: ["Details","Review","Related"])
    sc.tintColor = UIColor.darkGray
    sc.selectedSegmentIndex = 0
    return sc
}()

    let myButton: UIButton = {
    let button = UIButton(type: .system)
    button.setTitle("Ok", for: UIControlState())
    button.layer.borderColor = UIColor(red: 0, green: 129/255, blue: 250/255, alpha: 1).cgColor
    button.layer.borderWidth = 1
    button.layer.cornerRadius = 5
    button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 14)
    return button
}()

override func setupViews(){
    super.setupViews()

    addSubview(myButton)
    addSubview(segmentedControl)
    
    addConstraintsWithFormat("H:|-40-[v0]-40-|", views: segmentedControl)
    addConstraintsWithFormat("V:[v0(34)]-8-|", views: segmentedControl)
    
    addConstraintsWithFormat("H:[v0(60)]-14-|", views: myButton)
    addConstraintsWithFormat("V:[v0(32)]-56-|", views: myButton)
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.