美文网首页
酱油03-实现一些小控件

酱油03-实现一些小控件

作者: 没有北方的南方 | 来源:发表于2016-08-20 10:05 被阅读8次

实现简单的小控件

label/progress

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        //设置Vlabel的位置
//        let vlabel = Vlabel(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 400))
//        vlabel.backgroundColor = UIColor.redColor()
//        vlabel.label.numberOfLines = 0//设置分行
//        vlabel.vLabelMode = .center//设置对齐格式
//        vlabel.label.backgroundColor = UIColor.brownColor()
//        vlabel.string = "Sometimes view controllers that are using showViewController:sender and showDetailViewController:sender: will need to know when the split view controller environment above it has changed. This notification will be posted when that happens (for example, when a split view controller is collapsing or expanding). The NSNotification's object will be the view controller that caused the change."
//        let rect = vlabel.label.textRectForBounds(vlabel.bounds, limitedToNumberOfLines: 0)
//        print(rect)
//        
//        self.view.addSubview(vlabel)
        //设置Progress的位置
        let progress = Progress(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
        progress.p = 0.5//设置progress的值
        self.view.addSubview(progress)  
    }
}

label


import UIKit
//定义枚举(对齐格式)
enum VlableMode {
    case top
    case bottom
    case center
}

class Vlabel: UIView {
    
    var label = UILabel()
    //设置label的text
    var string : String!{
        set{
            self.label.text = newValue
        }
        get{
            return self.label.text
        }
    }
    var vLabelMode = VlableMode.top
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        self.addSubview(label)
        
    }
    
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        self.addSubview(label)
    }
    //调用layoutSubviews方法
    override func layoutSubviews() {
        var rect = label.textRectForBounds(self.bounds, limitedToNumberOfLines: 0)
        //判断对齐格式
        switch  vLabelMode{
        case .top:
            break
        case .bottom:
            rect.origin.y = self.bounds.size.height - rect.size.height
        default:
            rect.origin.y = self.bounds.size.height/2 - rect.size.height/2
        }
        label.frame = rect
    }
}

progress

import UIKit

class Progress: UIView {
    //1.创建UIView对象
    var proview = UIView()
    var p : CGFloat!
    //定义progress
    var progress : CGFloat{
        //判断进度条的值的范围
        set{
            if newValue > 1{
                p = 1
            }else{
                if newValue < 0{
                    p = 0
                }else{
                    p = newValue
                }
            }
            //自动调用系统的layoutSubview
            self.setNeedsLayout()
        }
        get{
            return p
        }
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
        self.addSubview(proview)
        setcolor()
    }
    
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        self.addSubview(proview)
         setcolor()
    }
    
    func setcolor(){
        self.backgroundColor = UIColor.redColor()
        proview.backgroundColor = UIColor.brownColor()
    }
    override func layoutSubviews() {
        super.layoutSubviews()
        let rect = CGRect(x: 0, y: 0, width: self.frame.size.width*progress, height: self.frame.size.height)
        proview.frame = rect
    }
    
}

相关文章

  • 酱油03-实现一些小控件

    实现简单的小控件 label/progress label progress

  • iOS 核心动画 第二集

    01-转盘 02-图片折叠 03-音乐震动条 04-倒影 06-QQ粘性效果 实现思路: 1.自定义大圆控件(UI...

  • 常见安卓知识点总结

    1.安卓自定义控件的三种实现方式:(主要作用就是提高代码的复用性) 1)组合控件:顾名思义就是将一些小的控件组合起...

  • 自定义View

    自定义view的三种方式: 组合控件:将一些小的控件组合成一个大的控件。这些小控件大多是系统自带的一些基本控件。这...

  • 控件渐变色的实现

    控件渐变色的实现(一)—— CAGradientLayer实现控件渐变色的实现(二)—— Core Graphics实现

  • 【Android开发进阶系列】自定义视图专题

    1 自定义视图方法汇总 1.1 (一)组合控件 (一)组合控件 组合控件,顾名思义就是将一些小的控件组合起来形成一...

  • Android 实现控件居中和控件中文字居中

    一、实现控件居中 在xml文件中修改 二、实现控件中文字居中

  • 酱油04-slider控件

    简单实现slider控件 三种方法实现slider功能

  • 项目里一些小控件

    1: 简单效果的banner视图 2: 颜色渐变分栏,从左向右排列的collectionView,带筛选的菜单 3...

  • 自定义View

    自定义控件的三种实现方法 对现有控件进行拓展 通过组合来实现新的控件:将系统原生控件组合起来,加上动画效果,形成一...

网友评论

      本文标题:酱油03-实现一些小控件

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