iOS视图边框的简单做法
我们绘制UI界面的时候,一般我们做边框是用layer,然后再给它上面添加阴影什么的,我比较喜欢用下面这个方法,
UI弄几张边框的图片,用代码给图片拉伸
- (UIImage *)changeBorderImage:(UIImage *)borderImage {
    UIImage *image = borderImage;
    CGFloat top = ; // 顶端盖高度
    CGFloat bottom =  ; // 底端盖高度
    CGFloat left = ; // 左端盖宽度
    CGFloat right = ; // 右端盖宽度
    UIEdgeInsets insets = UIEdgeInsetsMake(top, left, bottom, right);
    // 指定为拉伸模式,伸缩后重新赋值
    image = [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch];
    return image;
}
自定义一个边框视图或者在你的视图下面添加一个带有拉伸后的UIImage的UIImageView就行了
全部代码:
BorderView.h
//
// BorderView.h
// border_creat
//
// Created by 谭启宏 on 15/12/15.
// Copyright © 2015年 谭启宏. All rights reserved.
// #import <UIKit/UIKit.h> @interface BorderView : UIImageView @property (nonatomic,strong)UIImage *borderImage; - (instancetype)initWithFrame:(CGRect)frame borderImage:(UIImage *)borderImage; @end
BorderView.m
//
// BorderView.m
// border_creat
//
// Created by 谭启宏 on 15/12/15.
// Copyright © 2015年 谭启宏. All rights reserved.
// #import "BorderView.h" @implementation BorderView - (instancetype)initWithFrame:(CGRect)frame borderImage:(UIImage *)borderImage {
self =[super initWithFrame:frame];
if (self) {
self.image = [self changeBorderImage:borderImage]; }
return self;
} - (void)setBorderImage:(UIImage *)borderImage {
self.borderImage = [self changeBorderImage:borderImage];
} - (UIImage *)changeBorderImage:(UIImage *)borderImage {
UIImage *image = borderImage;
CGFloat top = ; // 顶端盖高度
CGFloat bottom = ; // 底端盖高度
CGFloat left = ; // 左端盖宽度
CGFloat right = ; // 右端盖宽度
UIEdgeInsets insets = UIEdgeInsetsMake(top, left, bottom, right);
// 指定为拉伸模式,伸缩后重新赋值
image = [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch];
return image;
} @end
ViewController.m
- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    BorderView *borderView = [[BorderView alloc]initWithFrame:CGRectMake(, , , ) borderImage:[UIImage imageNamed:@"tool_biankuang2"]];
    [self.view addSubview:borderView];
    BorderView *borderView1 = [[BorderView alloc]initWithFrame:CGRectMake(, , , ) borderImage:[UIImage imageNamed:@"tool_biankuang2"]];
    [self.view addSubview:borderView1];
    BorderView *borderView2 = [[BorderView alloc]initWithFrame:CGRectMake(, , , ) borderImage:[UIImage imageNamed:@"tool_biankuang"]];
    [self.view addSubview:borderView2];
}
效果图:

demo地址:http://pan.baidu.com/s/1dEpedBr
tips:图片只需要上下左右距离边部有几象数,中间空一部分就行了
iOS视图边框的简单做法的更多相关文章
- iOS 视图控制器转场详解
		
iOS 视图控制器转场详解 前言的前言 唐巧前辈在微信公众号「iOSDevTips」以及其博客上推送了我的文章后,我的 Github 各项指标有了大幅度的增长,多谢唐巧前辈的推荐.有些人问我相关的问题 ...
 - View Programming Guide for iOS ---- iOS 视图编程指南(四)---Views
		
Views Because view objects are the main way your application interacts with the user, they have many ...
 - iOS开发UI篇—简单的浏览器查看程序
		
iOS开发UI篇—简单的浏览器查看程序 一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件 ...
 - iOS开发UI篇—简单介绍静态单元格的使用
		
iOS开发UI篇—简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果, ...
 - iOS视图控制对象生命周期
		
iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 ...
 - IOS 视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途
		
iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 ...
 - iOS CoreImage之滤镜简单使用
		
代码地址如下:http://www.demodashi.com/demo/11605.html 老骥伏枥,志在千里 前记 最近一直在研究图像处理方面,既上一篇iOS Quart2D绘图之UIImage ...
 - View Programming Guide for iOS ---- iOS 视图编程指南(一)
		
Next About Windows and Views 关于窗口和视图 In iOS, you use windows and views to present your application’s ...
 - iOS开发网络篇—简单介绍ASI框架的使用
		
iOS开发网络篇—简单介绍ASI框架的使用 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是ASIHTTPRequest,外号“HTTP终结者”,功能十分强大 ...
 
随机推荐
- C 函数库 (libc,glibc,uClibc,newlib)
			
glibc glibc和libc都是Linux下的C函数库,libc是Linux下的ANSI C的函数库:glibc是Linux下的GUN C的函数库:GNU C是一种ANSI C的扩展实现.ANSI ...
 - 使用POI创建word表格-在表格单元格中创建子表格
			
要实现的功能如下:表格中的单元格中有子表格 实现代码如下: XWPFParagraph cellPara = row.getCell(j).getParagraphArray(0); //row.ge ...
 - JBOSS连接池默认连接数是多少?在哪个配置文件有这个默认的连接数?
			
如果你用的是是4.x的Jboss的话,请参考:docs/dtd/jboss-ds_1_0.dtd,相信你很容易就能找到控制最大/最小连接数的选项,应该是诸如:max-pool-size/min-poo ...
 - 新建maven的pom.xml第一行出错的解决思路
			
前言:博主在想要用maven创建项目的时候,忘记之前已经安装过maven了,所以再安装了另一个版本的maven,导致在pom.xml的第一行总是显示某一个jar的zip文件读取不出来. 在网上找了很多 ...
 - java 核心技术卷一笔记 6 .2接口 lambda 表达式 内部类
			
6.2 接口实例 6.2.1 接口与回调 在java.swing包中有一个Timer类,可以使用它在到达给定的时间间隔时发出通告,假如程序中有一个时钟,就可以请求每秒钟获得一个通告,以便更新时钟的表盘 ...
 - Educational Codeforces Round 11 _D
			
http://codeforces.com/contest/660/problem/D 这个题据说是很老的题了 然而我现在才知道做法 用map跑了1953ms: 题目大意 给你n个点的坐标 求这些点能 ...
 - ArcGis server连接oracle
			
ArcGIG server连接Oracle 目录--gis服务器--添加arcgis server 下一步: 身份验证为在arcgis server manager 中的管理员登录密码和账户 对于服务 ...
 - 实现类似add(1)(2)(3)的函数
			
要求实现类似add(1)(2)(3)调用方式的方法,例如add为加法函数,则调用add(1)(2)输出3,调用add(1)(5)(3)输出9.  函数的调用方式是多次调用同一个函数,将每次传入的参数 ...
 - 引入了junit为什么还是用不了@Test注解
			
pom文件明明引入了unit,为什么还是用不了@Test? 配置如下: <dependency> <groupId>junit</groupId> <arti ...
 - mac系统下android studio创建手机模拟器
			
打开android studio,点击右上角的模拟器图标,打开“Android Virtual Device Manager” 窗口,如下图 点击“Create Virtual Device”,在 ...