iOS 自定义方法 - 不完整边框
///////////////////////////OC.h//////////////////////////
//
// UIView+FreeBorder.h
// BHBFreeBorder
//
// Created by bihongbo on 15/12/30.
// Copyright © 2015年 bihongbo. All rights reserved.
//
#import <UIKit/UIKit.h>
typedef enum : NSUInteger {
BorderTypeTop,
BorderTypeLeft,
BorderTypeRight,
BorderTypeBottom
} BorderType;
@interface UIView (FreeBorder)
/** 多边框 */
- (void)addBorderWithColor:(UIColor *)color size:(CGFloat)size borderTypes:(NSArray *)types;
/** 单边框 */
- (void)addBorderLayerWithColor:(UIColor *)color size:(CGFloat)size borderType:(BorderType)boderType;
@end
//示例
/// 下上右边框
//[lbl1 addBorderWithColor:[UIColor redColor] size:1 borderTypes:@[@(BorderTypeBottom),@(BorderTypeTop),@(BorderTypeRight)]];
/// 单根边框
//[lbl2 addBorderLayerWithColor:[UIColor greenColor] size:1 borderType:BorderTypeRight];
///////////////////////////OC.m//////////////////////////
//
// UIView+FreeBorder.m
// BHBFreeBorder
//
// Created by bihongbo on 15/12/30.
// Copyright © 2015年 bihongbo. All rights reserved.
//
#import "UIView+FreeBorder.h"
@implementation UIView (FreeBorder)
- (void)addBorderWithColor:(UIColor *)color size:(CGFloat)size borderTypes:(NSArray *)types{
for (int i = 0 ; i < types.count; i ++) {
[self addBorderLayerWithColor:color size:size borderType:[types[i] integerValue]];
}
}
- (void)addBorderLayerWithColor:(UIColor *)color size:(CGFloat)size borderType:(BorderType)boderType{
CALayer * layer = [CALayer layer];
layer.backgroundColor = color.CGColor;
[self.layer addSublayer:layer];
switch (boderType) {
case BorderTypeTop:
layer.frame = CGRectMake(0, 0, self.frame.size.width, size);
break;
case BorderTypeLeft:
layer.frame = CGRectMake(0, 0, size, self.frame.size.height);
break;
case BorderTypeBottom:
layer.frame = CGRectMake(0, self.frame.size.height - size, self.frame.size.width, size);
break;
case BorderTypeRight:
layer.frame = CGRectMake(self.frame.size.width - size, 0, size, self.frame.size.height);
break;
default:
break;
}
}
@end
///////////////////////////Swift//////////////////////////
//
// UIView+FreeBolder.swift
// daydays
//
// Created by bihongbo on 9/14/15.
// Copyright (c) 2015 daydays. All rights reserved.
//
import Foundation
import UIKit
@objc enum BorderType:NSInteger{
case top,left,bottom,right
}
extension UIView{
// MARK: - 为视图加上边框 ,枚举数组可以填充上下左右四个边
@objc func addBorder(color: UIColor?, size: CGFloat, borderTypes:NSArray){
var currentColor:UIColor?
if let _ = color{
currentColor = color
}else{
currentColor = UIColor.blackColor()
}
for borderType in borderTypes{
let bt: NSNumber = borderType as! NSNumber
self.addBorderLayer(currentColor!, size: size, boderType: BorderType(rawValue: bt.integerValue)!)
}
}
@objc func addBorderLayer(color: UIColor, size: CGFloat, boderType: BorderType){
let layer:CALayer = CALayer()
layer.backgroundColor = color.CGColor
self.layer.addSublayer(layer)
switch boderType{
case .top:
layer.frame = CGRectMake(0, 0, self.frame.width, size)
case .left:
layer.frame = CGRectMake(0, 0, size, self.frame.height)
case .bottom:
layer.frame = CGRectMake(0, self.frame.height - size, self.frame.width, size)
case .right:
layer.frame = CGRectMake(self.frame.width - size, 0, size, self.frame.height)
// default:
// return;
}
}
}
//示例
/// 下上右边框
//lbl1.addBorder(UIColor.redColor(), size: 1, borderTypes: [BorderType.bottom.rawValue,BorderType.top.rawValue,BorderType.right.rawValue])
/// 单根边框
//lbl2.addBorderLayer(UIColor.greenColor(), size: 1, boderType: BorderType.right);
iOS 自定义方法 - 不完整边框的更多相关文章
- iOS项目的完整重命名方法图文教程
原文链接:http://www.cocoachina.com/ios/20150104/10824.html iOS项目的完整重命名方法图文教程 前言:在iOS开发中,有时候想改一下项目的名字,都会遇 ...
- IOS UIView圆角,阴影,边框,渐增光泽
圆角 sampleView.layer.cornerRadius = 2.5; // 圓角的弧度sampleView.layer.masksToBounds = YES; 阴影 sampleView. ...
- iPhone 6/plus iOS Safari fieldset border 边框消失
问题:iPhone6 plus 手机浏览网页,fieldset border 边框消失. 示例代码: <div> <fieldset style="border: 1px ...
- IOS设置UIView的边框为圆角
iOS 系统自带的 View 组件都是正方形的,看起来都太生硬,有时候我需要变成圆角形式,如下图: 具体的实现是使用QuartzCore库,下面我具体的描述一下实现过程: • 首先 ...
- iOS 自定义方法 - UIView扩展
示例代码 //#import <UIKit/UIKit.h>@interface UIView (LPCView)/** 上 */@property CGFloat top;/** 下 * ...
- iOS 自定义方法 - 播放GIF
示例代码 ///////////////////////第一种/////////////////////// //// GifView.h// GIFViewer//// Created by ...
- iOS设置分割线从边框顶端开始
好方法,本来是在xib里面设置自定义分割线位置,结果还是差15像素,该方法亲测好使. IOS8 设置TableView Separatorinset 分割线从边框顶端开始 (转) 在ios8上 [Ta ...
- iOS 数据库sqlite完整增删改查操作
1: 创建数据库表格 1.1 — 表格创建使用一个数据库软件快速创建:软件大小14.3M; 下载地址:http://pan.baidu.com/s/1qWOgGoc; 表格创建-> 打开软件,点 ...
- iOS之一个iOS开发人员完整的学习路线
iOS开发能力 掌握(最好是精通)OC语言和runtime各种细节(读过相关的clang源码和runtime源码为佳).精通基本的framework(Foundation,UIKit等,平时干活用得最 ...
随机推荐
- webp图片实践之路
最近,我们在项目中实践了webp图片,并且抽离出了工具模块,整合到了项目的基础模板中.传闻IOS10也将要支持webp,那么使用webp带来的性能提升将更加明显.估计在不久的将来,webp会成为标配. ...
- 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...
- 阿里云直播 C# SDK 如何使用
阿里云直播SDK的坑 1.直播云没有单独的SDK,直播部分被封装在CDN的相关SDK当中. 2.针对SDK,没有相关Demo. 3.针对SDK,没有相关的文档说明. 4.针对SDK的说明,官网上的说明 ...
- HTML5 语义元素(二)文本内容
上一篇介绍的是关于页面结构方面的语义元素,本篇介绍文本内容方面,包含:<bdi>.<details>.<summary>.<mark>.<outp ...
- NET Core-学习笔记(三)
这里将要和大家分享的是学习总结第三篇:首先感慨一下这周跟随netcore官网学习是遇到的一些问题: a.官网的英文版教程使用的部分nuget包和我当时安装的最新包版本不一致,所以没法按照教材上给出的列 ...
- jquery插件的用法之cookie 插件
一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...
- iOS逆向工程之App脱壳
本篇博客以微信为例,给微信脱壳."砸壳"在iOS逆向工程中是经常做的一件事情,,因为从AppStore直接下载安装的App是加壳的,其实就是经过加密的,这个“砸壳”的过程就是一个解 ...
- zookeeper源码分析之六session机制
zookeeper中session意味着一个物理连接,客户端连接服务器成功之后,会发送一个连接型请求,此时就会有session 产生. session由sessionTracker产生的,sessio ...
- BPM公文管理解决方案分享
一.方案概述 公文作为一种规范性文书,具有法律性.指导性.政令性强的特点,是企事业单位政令上通下达的重要方式.及时.准确.安全地处理.控制和管理公文,方能保障企事业单位正常运转,确保组织权威和政令畅通 ...
- Linux LVM逻辑卷配置过程详解
许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据,甚至被迫重新规划分区并重装操作系统,以 ...