用xib和代码的方式创建带边框和圆角的按钮

  • 一、通过xib快速设置圆角
    • 利用User Defined Runtime Attributes 进行设置

身份检查器

  • 详细步骤介绍
    • 点击UI控件
    • 点击 Xcode 右侧上方身份检查器(左起第三个按钮)
    • 找到 Runtime Attributes 属性,通过Key Path 和 Value 进行设置
  • 设置圆角需要到的Key Path:
    • layer.cornerRadius ,注意该 key 对应 Value 的 type 应该设置为 String(设置圆角)
    • keyPath值layer.masksToBounds ,注意该 key 对应 Value 的 type 应该设置为 Boolean , 当右侧出现对号时为YES
    • keyPath值为layer.borderWidth,类型为NSNumber(设置边框宽度)
    • keyPath值为layer.borderColor , 类型为CGColor(设置边框颜色)
    • 注意:经过测试,UILabel 必须设置设置 masksToBounds 这一键值对,才会出现圆角效果;UIButton、UIView、UIImageView 只需设置 layer.cornerRadius 这一键值对就可实现圆角效果

Xib 为控件设置边框效果

  • 1,通过代码方式进行设置

- (void)viewDidLoad {

[super viewDidLoad];

self.myView.layer.borderColor = [UIColor redColor].CGColor;

self.myView.layer.borderWidth = 2;

}

  • 2,通过xib快速设置边框
    • 所用方法和上面所讲Xib设置圆角基本相同,唯一不同的就是设置 key Path 键值对
  • 设置边框需要到的Key Path:
    • layer.borderWidth ,注意该 key 对应 Value 的 type 应该设置为 String
    • layer.borderColor , 注意该 key 对应 Value 的 type 应该设置为 CGColor

//二、用代码创建的方式

  1. [box.actionButton.layer setMasksToBounds:YES];
  2. [box.actionButton.layer setCornerRadius:10.0]; //设置矩形四个圆角半径
  3. //边框宽度
  4. [box.actionButton.layer setBorderWidth:1.0];
  5. //设置边框颜色有两种方法:第一种如下:
  6. CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
  7. CGColorRef colorref = CGColorCreate(colorSpace,(CGFloat[]){ 0, 0, 0, 1 });
  8. [box.actionButton.layer setBorderColor:colorref];//边框颜色
  9. //第二种方法如下:
  10. //_testButton.layer.borderColor=[UIColor grayColor].CGColor;

注: 以下方式是在控件某个方位加圆角

UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(120, 10, 80, 80)];

view2.backgroundColor = [UIColor redColor];

[self.view addSubview:view2];

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view2.bounds byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(10, 10)];

CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];

maskLayer.frame = view2.bounds;

maskLayer.path = maskPath.CGPath;

view2.layer.mask = maskLayer;

其中:

byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight   指定了需要成为圆角的角。该参数是UIRectCorner类型的,可选的值有:

* UIRectCornerBottomLeft (下左)
* UIRectCornerTopRight    (上右)
* UIRectCornerTopLeft   (上左)
* UIRectCornerBottomRight (下右)
* UIRectCornerAllCorners  (四个方位)

从名字很容易看出来代表的意思,使用“|”来组合就好了。

时间: 2024-10-20 08:30:42

用xib和代码的方式创建带边框和圆角的按钮的相关文章

CALayer 知识:创建带阴影效果的圆角图片图层和创建自定义绘画内容图层

效果如下: KMLayerDelegate.h 1 #import <UIKit/UIKit.h> 2 3 @interface KMLayerDelegate : NSObject 4 5 @end KMLayerDelegate.m 1 #import "KMLayerDelegate.h" 2 3 @implementation KMLayerDelegate 4 5 /** 6 * 根据角度,获取对应的弧度 7 * 8 * @param degree 角度 9 *

android 带边框的圆角按钮

新建buttonstyle.xml 代码如下 <?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 连框颜色值 --><item> <shape> <solid android:color="#1

WPF 创建无边框的圆角窗口

第一步:去掉窗体默认样式的边框 首先将窗体的背景设为透明,将允许透明的属性设置为True,即:Background="Transparent"  AllowsTransparency="True",将Window的WindowStyle属性设置为None,即WindowStyle="None" (当AllowsTransparency="True"时,WindowStyle.None 是 WindowStyle 的唯一有效值)

(3)通过声明的方式创建ApplicationContext对象

时间是一切财富中最宝贵的财富. -- 德奥弗拉斯多 在%spring%/docs/spring-framework-reference/htmlsingle/index.html文件的 5.14.4 Convenient ApplicationContext instantiation for web applications. 如果要创建ApplicationContext的实例,有两种方法:一种是使用代码的方式,另一种是使用声明的方式. 使用代码的方式创建ApplicationContext

在Oracle中如何创建带参数的视图?

本文介绍了oracle数据库中创建带参数视图的例子,有需要的朋友参考下. 在Oracle中如何创建带参数的视图? 在Oracle数据库中,视图不像存储过程和函数一样,可以定义输入参数,但可以变个方式,使用程序包来实现. 首先,定义程序包: 复制代码 代码示例: /* 按个人需要定义,我定义三个参数 ,因我项目程序需要,所以三个参数都是number ,当然可定义其它类型但切记,第二个create 的参数类型等需以第一个create一致,否则程序包创建失败*/create or replace pa

21_Android中常见对话框,光传感器,通过重力感应器编写出指南针应用,通过Jav代码的方式编写补间动画,通过XML的方式编写补间动画

?? 1 关于常见的对话框,主要有: 常见的对话框,单选对话框,多选对话框,进度条对话框(转圈类型的),带进度条的对话框. 案例结构: 完成如下结构的案例,将所有的案例都测试一下: 2 编写MainActivity,代码如下: package com.itheima.dialog; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import andro

最新的JavaScript核心语言标准&mdash;&mdash;ES6,彻底改变你编写JS代码的方式!【转载+整理】

原文地址 本文内容 ECMAScript 发生了什么变化? 新标准 版本号6 兑现承诺 迭代器和for-of循环 生成器 Generators 模板字符串 不定参数和默认参数 解构 Destructuring 箭头函数 Arrow Functions Symbols 集合 学习Babel和Broccoli,马上就用ES6 代理 Proxies ES6 说自己的宗旨是"凡是新加入的特性,势必已在其它语言中得到强有力的实用性证明."--TRUE!如果你大概浏览下 ES6 的新特性,事实上它

SSH(Struts2+Spring+Hibernate)框架搭建流程&lt;注解的方式创建Bean&gt;

此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblogs.com/wkrbky/p/5912810.html 一.Hibernate(数据层)的搭建: 实现流程 二.Spring(注入实例)的使用: 实现流程 三.Struts2(MVC)的搭建: 实现流程 这里注意一点问题: Struts2与Hibernate在一起搭建,antlr包,有冲突.MyE

格局中@null的代码实现方式

布局中通常会用到@null.如RadioButton常用的技巧通过RadioGroup实现Tab,需要设置android:button="@null".如果要在代码中动态创建控件,android中并不能找到相关的属性或方法.搜索均无解决办法,最后想到一个变通的方法:通过透明色获取drawable. setButtonDrawable(getResources().getDrawable(android.R.color.transparent)) 实际还是可以通过布局的方法来动态创建控件