美文网首页iOS Developer
swift3.0收缩式菜单(上下左右四个方向)

swift3.0收缩式菜单(上下左右四个方向)

作者: please_smile | 来源:发表于2017-04-10 11:44 被阅读0次

项目地址:demo (尚未考虑多个应用场景,仅适用于学习参考,具体使用请参照自身使用场景。)

QQ20170410-114211.gif

一、使用方式

使用时应保持YExpandMenusizeitems子按钮的size一致,并且在外部实现子按钮的点击事件.
//
//  ViewController.swift
//  test2
//
//  Created by smile on 2017/3/20.
//  Copyright © 2017年 ayang. All rights reserved.
//
import UIKit

class ViewController: UIViewController {

    var menu:YExpendMenu!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        let menu = YExpendMenu(frame: CGRect(x: self.view.frame.size.width - 60, y: 30, width: 40, height: 40), direction: .left, animateDuration: 0.2, items: configBtns(), itemMargin:8)
        menu.backgroundColor = UIColor.cyan
        self.view.addSubview(menu)
        
        let menu1 = YExpendMenu(frame: CGRect(x: 0, y: 90, width: 40, height: 40), direction: .right, animateDuration: 0.2, items: configBtns(), itemMargin:8)
        menu1.backgroundColor = UIColor.yellow
        
        self.view.addSubview(menu1)
        
        let menu2 = YExpendMenu(frame: CGRect(x: 0, y: self.view.frame.size.height - 40, width: 40, height: 40), direction: .up, animateDuration: 0.2, items: configBtns(), itemMargin:8)
        menu2.backgroundColor = UIColor.brown
        
        self.view.addSubview(menu2)
        
        let menu3 = YExpendMenu(frame: CGRect(x: self.view.frame.size.width - 60 , y: self.view.frame.size.height / 2 - 100, width: 40, height: 40), direction: .down, animateDuration: 0.2, items: configBtns(), itemMargin:8)
        menu3.backgroundColor = UIColor.green

        self.view.addSubview(menu3)
        
    }
    /// 创建一组button
    func configBtns() ->NSArray {
        let arr = NSMutableArray()
        for i in 0..<4 {
            let btn = UIButton(type: .system)
            btn.setTitle("\(i + 1)", for: .normal)
            btn.frame = CGRect(x: 0, y: 0, width: 40, height: 40)
            btn.backgroundColor = UIColor.darkText
            btn.layer.cornerRadius = btn.frame.size.width / 2
            btn.layer.masksToBounds = true
            btn.clipsToBounds = true
            btn.tag = 101 + i
            btn.addTarget(self, action: #selector(itemsTap(sender:)), for: .touchUpInside)
            btn.setTitleColor(UIColor.green, for: .normal)
            arr.add(btn)
        }
        return (arr as NSArray)
    }
    
    func itemsTap(sender:UIButton) -> Void {
        print("第\(sender.tag - 100)个item")
    }
}

相关文章

  • swift3.0收缩式菜单(上下左右四个方向)

    项目地址:demo (尚未考虑多个应用场景,仅适用于学习参考,具体使用请参照自身使用场景。) 一、使用方式 使用...

  • 一行代码搞定Android弧形卫星动画菜单(附Demo)

    特性: 支持上下左右四个方向展开弧形菜单 支持扩展菜单,理论上多少个子菜单都可以 支持自定义菜单图标和子菜单图标 ...

  • POJ-3020-Antenna Placement(二分图-最

    Antenna Placement题意:一个天线可以覆盖距离它为一的上下左右四个方向。但是每个天线只能选择四个方向...

  • 菜单工具插件

    菜单工具插件可以通过 创建多级内联或弹出式菜单,支持通过键盘方向键控制菜单滑动,允许为菜单的各个选项添加图标,调用...

  • SimpleOnGestureListener实现上下左右滑动

    最近项目中有个需求就是实现上下左右四个方向的滑动,每个方向有不同的业务逻辑。 思路是实现SimpleOnGestu...

  • HTML5 代码缩写

    盒模型代码简写 盒模型外边距(margin)、内边距(padding)和边框(border)设置上下左右四个方向的...

  • margin

    margin margin概念##### margin属性给指定元素上下左右四个方向设置外边距(即指定元素距离其上...

  • UIImageView简单的性能优化

    看代码吧~ 可以设置上下左右四个方向任意圆角 更具图片大小判断圆角大小 分类: UIImageView+Exte...

  • 左侧菜单收缩展开

    效果: 实现原理:图标整体是用的定位 html 实现矩形和层级关系需要注意

  • 盒模型代码简写

    一、盒模型的外边距(margin)和内边距(padding)和边框(border)设置上下左右四个方向的边距是按照...

网友评论

    本文标题:swift3.0收缩式菜单(上下左右四个方向)

    本文链接:https://www.haomeiwen.com/subject/mprsattx.html