cornerradius,cornerradius什么意思
怎样在pdf文件中添加一个图章呢?
首先我们需要了解一下什么是图章,都有什么作用?图章:图章对于校验PDF文档具有重要的意义,实现可以PDF文档审核、审批以及期限等标识。其实给PDF文件添加图章还是非常简单的,创建图章稍微比较复杂。接下来就进入正题了,教大家如何给PDF文件创建以及添加图章,希望能帮助大家。
具体的操作步骤如下:
1、打开PDF编辑器软件,然后再打开我们需要进行编辑的PDF文档。
2、打开文档后,在左边的缩略图中找到需要添加图章的页面,然后选择“注释”菜单栏下的绘图工具中的“图章”。
3、然后选择一个图章,也可以选择”图章调板”新建一个属于自己的图章。
4、在跳转出来的”图章面板”中点击”创建”,然后选择图章的来源。
5、在添加新的图章页面中设置好页面范围、图章标题以及目标图章集等,然后点击确定。然后倒回到”注释”-”图章”中就能找到该图章并添加了。
希望可以帮到你,谢谢。
iOS设置圆角的3种方法
之前面试的时候被问道设置圆角除了layer还有什么方法?因为大家都知道layer会影响app性能,也是大家最常用、最简单的方法。下面就简单介绍这3种方法:
1、通过设置layer的属性
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
//只需要设置layer层的两个属性
//设置圆角
imageView.layer.cornerRadius = imageView.frame.size.width / 2;
//将多余的部分切掉
imageView.layer.masksToBounds = YES;
[self.view addSubview:imageView];
2、第二种方法:使用贝塞尔曲线UIBezierPath和Core Graphics框架画出一个圆角
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
imageView.image = [UIImage imageNamed:@"1"];
//开始对imageView进行画图
UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, NO, [UIScreen mainScreen].scale);
//使用贝塞尔曲线画出一个圆形图
[[UIBezierPath bezierPathWithRoundedRect:imageView.bounds cornerRadius:imageView.frame.size.width] addClip];
[imageView drawRect:imageView.bounds];
imageView.image = UIGraphicsGetImageFromCurrentImageContext();
//结束画图
UIGraphicsEndImageContext();
[self.view addSubview:imageView];
3、第三种方法:使用CAShapeLayer和UIBezierPath设置圆角
#warning 首先需要导入
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
imageView.image = [UIImage imageNamed:@"1"];
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:imageView.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:imageView.bounds.size];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init];
//设置大小
maskLayer.frame = imageView.bounds;
//设置图形样子
maskLayer.path = maskPath.CGPath;
imageView.layer.mask = maskLayer;
[self.view addSubview:imageView];
}
Swift--给UIView添加阴影效果
? override?? init (frame:CGRect) {
? ? ? ?//定义view的大小
? ? ? ? let?? selfFrame =CGRect(x:0, y:0, width:kScreenW-75, height:kScreenW*0.93)
? ? ? ? super .init(frame: selfFrame)
? ? ? ? //定义view的背景颜色
? ? ? ? backgroundColor = .white
? ? ? ??//定义view的角度
? ? ? ? layer.cornerRadius = 5
? ? ? ????//定义view的阴影颜色
? ? ? ? layer.shadowColor = UIColor.colorWidthHexString(hex: "#000000").cgColor
? ? ? ? //阴影偏移量
? ? ? ? layer.shadowOffset=CGSize(width:0, height:1)
? ? ? ??//定义view的阴影宽度,模糊计算的半径
? ? ? ? layer.shadowRadius = 10
? ? ? ? //定义view的阴影透明度,注意:如果view没有设置背景色阴影也是不会显示的
? ? ? ? layer.shadowOpacity = 0.1
? ? }
如何在Swift扩展中添加存储属性
在Swift扩展中添加存储属性:
一般而言,swift的扩展Extension只能添加计算属性,不能添加存储属性。当然,如果利用run time也可以实现extension添加存储属性的效果.
.如我给UIButton这个类添加了如下属性:
private var key: Void?
func createImageWithColor(_ color: UIColor) - UIImage? {
let rect = CGRect(x: 0.0, y: 0.0, width: 1.0, height: 1.0)
UIGraphicsBeginImageContext(rect.size)
let context = UIGraphicsGetCurrentContext()
context?.setFillColor(color.cgColor)
context?.fill(rect)
let theImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return theImage
}
extension UIButton {
@IBInspectable var borderColor: UIColor? {
get {
return objc_getAssociatedObject(self, key) as? UIColor
}
set(newValue) {
objc_setAssociatedObject(self, key, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
layer.borderColor = borderColor?.cgColor
}
}
@IBInspectable var borderWidth: CGFloat? {
get {
return objc_getAssociatedObject(self, key) as? CGFloat
}
set(newValue) {
objc_setAssociatedObject(self, key, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
layer.borderWidth = borderWidth ?? 0
}
}
@IBInspectable var cornerRadius: CGFloat? {
get {
return objc_getAssociatedObject(self, key) as? CGFloat
}
set(newValue) {
objc_setAssociatedObject(self, key, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
layer.cornerRadius = cornerRadius ?? 0
layer.masksToBounds = cornerRadius != 0
}
}
@IBInspectable var normalColor: UIColor? {
get {
return objc_getAssociatedObject(self, key) as? UIColor
}
set(newValue) {
objc_setAssociatedObject(self, key, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
setBackGroundColor(normalColor ?? UIColor.white, state: UIControlState())
}
}
@IBInspectable var highlightedColor: UIColor? {
get {
return objc_getAssociatedObject(self, key) as? UIColor
}
set(newValue) {
objc_setAssociatedObject(self, key, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
setBackGroundColor(highlightedColor ?? UIColor.lightGray, state: .highlighted)
}
}
fileprivate func setBackGroundColor(_ backGroundColor: UIColor, state: UIControlState) {
let image = createImageWithColor(backGroundColor)
setBackgroundImage(image, for: state)
}
}
怎么把button变成圆形
设置button完全为圆形:
button.layer.cornerradius
=
34.0;(该值到一定的程度,就为圆形了。)
button.layer.borderwidth
=
1.0;
button.layer.bordercolor
=[uicolor
clearcolor].cgcolor;
button.clipstobounds
=
true;//去除边界
cornerradius必须配合maskstobounds吗 imageview
可以不用。
我们在cell中,经常需要设置imageView的圆角。但是你如果把cornerRadius和masksToBounds放在一起用,则会导致离屏渲染,影响性能。下面给出一个不影响性能的设置圆角方法,具体看这个DEMO
UIImage *image = [[UIImage imageNamed:@"callAd-03.jpg"] circleImage];
//当使用大图片时请用这个方法,不会有缓存
NSString *path = [[NSBundle mainBundle] pathForResource:@"callAd-03" ofType:@"jpg"];
UIImage *thumbnail = [UIImage imageWithContentsOfFile:path];
注意一个细节:
你需要使用背景颜色与父视图的背景颜色一致。因为此时我们没有设置 masksToBounds,因此超出圆角的部分依然会被显示。因此,你不应该再使用背景颜色,可以在绘制圆角矩形时设置填充颜色来达到类似效果。
在为 UIImageView 添加圆角时,请确保 image 属性不是 nil,否则这个设置将会无效。
关于imageView:UIViewContentModeScaleToFill :缩放图片,使图片充满容器,属性会导致图片变形。
UIViewContentModeScaleAspectFit:会保证图片比例不变,而且全部显示在ImageView中,这意味着ImageView会有部分空白,不会填充整个区域。
UIViewContentModeScaleAspectFill:也会证图片比例不变,但是是填充整个ImageView的,可能只有部分图片显示出来。
Top,Left,Right等等就是将突破放在View中的位置进行调整。
内容模式有利于重复使用view的内容,如果你想自定义视图并在缩放和计算操作期间重绘它们,可以使用UIViewContentModeRedraw值,设置该值将使系统调用drawRect:方法来响应视图的几何结构的改变,一般情况下,应该尽量避免使用该值。