内容很详细,涉及到虚线边框圆角问题及解决过程。
2.ios截图
①截某个显示图片的控件上的截图
UIGraphicsBeginImageContext(_imgView.frame.size);
[_imgView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
UIGraphicsEndImageContext();
return viewImage;
这里只能截取_imgView上显示的图片及imgView上面覆盖的子视图,而不能截取imgView某个子视图内imgView的图片。
②截取某个控件上某一部分的截图
拖动、缩放、裁剪框UI效果,没有边界判断,裁剪范围不是裁剪框的区域demo
https://www.jianshu.com/p/a76b8385facc
解决裁剪出的图片不是裁剪框范围的问题
https://blog.csdn.net/maggiezzzzz/article/details/51741816
3.ios使用系统插件之后,默认按钮上的文字是英文的,类似navigationItem.rightBarButtonItem、UIImagePickerController拍照和裁剪页面选定了风格之后,显示的文字或图片都是默认的,想要全部显示中文,除了通过代码依次改变之外,还可以通过设置info.plist文件中Localization native development region为China
4.关于UITextfield
①修改textfield占位符字体颜色
参考后最简单的方法:
[phoneTf setValue:[UIColor whiteColor] forKeyPath:@"placeholderLabel.textColor"];
②textfield设置文字与左边框距离
//设置左边视图的宽度
textField.leftView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 8, 0)];
//设置显示模式为永远显示(默认不显示 必须设置 否则没有效果)
textField.leftViewMode = UITextFieldViewModeAlways;
5.关于UILabel
① 完成中间六个数字样式
首先设置字体大小textSize,根据字体大小算出字体间距textWidth,设置字间距NSKernAttributeName,但是第一个字与边距是没有距离的,所以再次设置段落样式首行字符缩进距离firstLineHeadIndent,居中设置没有任何意义,最后把样式赋值给label。
CGSize textSize = [@"3" boundingRectWithSize:CGSizeMake(MAXFLOAT, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:48]} context:nil].size;
CGFloat textWidth = textSize.width;
NSString *labelText = [NSString stringWithFormat:@"%s",szTotpHash];
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelText attributes:@{NSKernAttributeName:@(_textSpace)}];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [labelText length])];
paragraphStyle.firstLineHeadIndent = _textSpace;
paragraphStyle.alignment = TextAlignmentCenter;
self.dPassword.attributedText = attributedString;
6.图层叠加与拦截事件
两个叠加的图层A、B,A在B图层下方:
① 若点击时希望A响应,则B设置userInteractionEnabled为NO,A设置为YES。
② 若希望点击时B响应,则A、B都要设置userInteractionEnabled为YES
③系统默认不能跟用户交互的UI:UIImageView,UILabel
默认和用户交互的:UIView,UIScrollView,UItableView等
7.设置父视图透明度 不影响子视图
preView.backgroundColor=[[UIColor blackColor]colorWithAlphaComponent:0.5];
8.宏定义生成随机色
#define ZRRandomColor ZRColor(arc4random_uniform(256), arc4random_uniform(256), arc4random_uniform(256))
9.tabbar 去线条,加阴影
//移除顶部线条
self.tabBar.backgroundImage = [UIImage new];
self.tabBar.shadowImage = [UIImage new];
//添加阴影
self.tabBar.layer.shadowColor = [UIColor lightGrayColor].CGColor;
self.tabBar.layer.shadowOffset = CGSizeMake(0, -5);
self.tabBar.layer.shadowOpacity = 0.3;