iOS UI篇
jeikerxiao
简单,
展开
-
iOS UI篇1—CALayer简介
一、简单介绍在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层@property(nonatomic,readonl转载 2016-06-02 11:33:06 · 235 阅读 · 0 评论 -
iOS-UI篇-头像本地文件存储
//访问本地沙盒是否存在相关图片 NSString *fullPath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"currentImage.png"]; UIImage *savedImage = [UIImage im原创 2016-08-10 09:57:07 · 467 阅读 · 0 评论 -
IOS UI篇- 关于状态栏的相关设置(UIStatusBar)
知识普及ios上状态栏 就是指的最上面的20像素高的部分 状态栏分前后两部分,要分清这两个概念,后面会用到:前景部分:就是指的显示电池、时间等部分; 背景部分:就是显示黑色或者图片的背景部分;如一般情况:前景部分为白色,背景部分为黑色注意:原创 2016-08-10 10:05:18 · 680 阅读 · 0 评论 -
iOS UI篇 - NavigationItem.rightBarButtonItem设置
第一种:这种设置出来的外观不好控制:UIImage *searchimage=[UIImage imageNamed:@"search.png"]; UIBarButtonItem *barbtn=[[UIBarButtonItem alloc] initWithImage:nil style:UIBarButtonItemStyleDone target:self action:@sele原创 2016-08-10 10:44:02 · 3724 阅读 · 0 评论 -
iOS 图片处理方法(按比例缩放,指定宽度按比例缩放)
1.按比例缩放在这里你传入的cgsize就是你要显示图片的区域,或者就是说设置放大图片的区域部分。//按比例缩放,size 是你要把图显示到 多大区域 + (UIImage *) imageCompressFitSizeScale:(UIImage *)sourceImage targetSize:(CGSize)size{ UIImage *newImage = nil;原创 2016-08-31 21:03:58 · 7552 阅读 · 0 评论 -
iOS UI篇- 退出键盘
点击编辑区以外的地方(UIView)点击编辑区域以外的地方(UIControl)使用制作收起键盘的按钮使用判断输入字元关于键盘遮蔽的问题原创 2016-08-10 15:16:02 · 407 阅读 · 0 评论 -
iOS UI篇- UITextField键盘相关处理
看示例代码:#import "ViewController.h"#import "NetworkManagement.h"// 键盘高度缓冲值#define INTERVAL_KEYBOARD 10@interface ViewController ()<UITextFieldDelegate>@property (nonatomic, weak) UITextField *codeField原创 2016-08-10 15:52:38 · 393 阅读 · 0 评论 -
iOS UI篇- UINavigationBar与UINavigationItem的关系
用代码说话://创建一个导航栏UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44+20)];//创建一个导航栏集合UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:nil];//在这原创 2016-08-11 10:10:41 · 821 阅读 · 0 评论 -
iOS UI篇- 导航条隐藏下边的黑线
[self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];[self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];原创 2016-08-11 10:05:14 · 462 阅读 · 0 评论 -
iOS UI篇 - NSUserDefaults详解
NSUserDefaults是什么,有什么用处对于应用来说,每个用户都有自己的独特偏好设置,而好的应用会让用户根据喜好选择合适的使用方式,把这些偏好记录在应用包的plist文件中,通过NSUserDefaults类来访问,这是NSUserDefaults的常用姿势。如果有一些设置你希望用户即使升级后还可以继续使用,比如玩游戏时得过的最高分、喜好和通知设置、主题颜色甚至一个用户头像,那么你可以使用NS原创 2016-08-11 16:31:11 · 390 阅读 · 0 评论 -
iOS UI篇 - tableView隐藏某一行的cell
两步搞定隐藏:(代码只突出重点)step1:- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ if(indexPath.row == 0) { cell.hidden = YES;//重点 }}ste原创 2016-08-12 14:52:08 · 6726 阅读 · 0 评论 -
iOS UI篇- cell.imageView 设置圆角
1.添加框架添加框架:QuartzCore.framework并导入头文件:#import <QuartzCore/CALayer.h>2.添加下列代码在 cellForRowAtIndexPath 方法中添加代码:- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)原创 2016-08-25 14:47:12 · 627 阅读 · 0 评论 -
iOS - UI篇 -封装了友盟统计
封装了友盟统计的功能,只需要导入这个类,就可以很方便的使用:XXUMAnalyticsHelper.h/** * 友盟统计功能相关操作API封装 */@interface XXUMAnalyticsHelper : NSObject/* * 启动友盟统计功能 */+ (void)UMAnalyticStart;/** * 在viewWillAppear调用,才能够获取正确的页面访问原创 2016-09-05 15:59:11 · 837 阅读 · 0 评论 -
iOS UI篇 - @synchronized与dispatch_once 创建单例
@synchronized与dispatch_once 创建单例@synchronizedstatic SomeClass * instance = nil;+ (instancetype)shareInstance { @synchronized(self) { if (instance == nil) { instance = [[SomeCla原创 2016-08-15 14:17:30 · 847 阅读 · 0 评论 -
iOS UI篇 - UIWebView缓存清除
使用iOS的webview会自动进行缓存,我们在开发的时候要记得清除Cookie和缓存。在webview的关闭按钮中添加两个方法/**webView退出方法*/ - (void)closeBtnAction:(UIButton *)button{ _webView = nil; [self cleanCacheAndCookie]; [self.naviga转载 2016-09-20 11:35:39 · 4425 阅读 · 0 评论 -
iPhone各种机型尺寸、屏幕分辨率
px与pt区别字体大小的设置单位,常用的有2种:px、pt。这两个有什么区别呢?先搞清基本概念:px就是表示pixel,像素,是屏幕上显示数据的最基本的点;pt就是point,是印刷行业常用单位,等于1/72英寸。px全称为pixel,是一个点,它不是自然界的长度单位,谁能说出一个“点”有多长多大么?可以画的很小,也可以很大。如果点很小,那画面就清晰,我们称它为“分辨率高”,反之,就是“分辨率原创 2016-10-09 16:44:52 · 85959 阅读 · 1 评论 -
iOS UI篇 - plist文件字典转模型
plist文件字典转模型1.首先定义一个成员变量,存放所需的数据. 即:NSArray *apps#pragma mark - 重写apps的getter方法-(NSArray *)apps{ if (_apps == nil) { //加载plist文件 NSString *path = [[NSBundle mainBundle]pathForRes原创 2016-09-09 09:56:26 · 1788 阅读 · 0 评论 -
iOS UI篇16- 图片压缩方法
UIImageJPEGRepresentation和UIImagePNGRepresentationUIImageJPEGRepresentation方法在耗时上比较少 而UIImagePNGRepresentation耗时操作时间比较长-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMed转载 2016-08-06 11:33:38 · 456 阅读 · 0 评论 -
iOS UI篇2—CAlayer(创建图层)
一、添加一个图层添加图层的步骤:创建layer设置layer的属性(设置了颜色,bounds才能显示出来)将layer添加到界面上(控制器view的layer上)转载 2016-06-02 11:40:12 · 313 阅读 · 0 评论 -
iOS UI篇3—CAlayer层的属性
一、position和anchorPoint1.简单介绍CALayer有2个非常重要的属性:position和anchorPoint@property CGPoint position;用来设置CALayer在父层中的位置以父层的左上角为原点(0, 0)@property CGPoint anchorPoint;称为“定位点”、“锚点”决定着CALayer身上的哪个点会在position属性所指的位转载 2016-06-02 11:52:35 · 284 阅读 · 0 评论 -
iOS UI篇4—CAlayer(自定义layer)
一、第一种方式1.简单说明以前想要在view中画东西,需要自定义view,创建一个类与之关联,让这个类继承自UIView,然后重写它的DrawRect:方法,然后在该方法中画图。转载 2016-06-02 12:33:19 · 552 阅读 · 0 评论 -
iOS UI篇5—核心动画简介
一、简单介绍Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。也就是说,使用少量的代码就可以实现非常强大的功能。Core Animation是跨平台的,可以用在Mac OS X和iOS平台。Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程。转载 2016-06-02 12:38:43 · 254 阅读 · 0 评论 -
iOS UI篇6—核心动画(基础动画)
一、简单介绍CAPropertyAnimation的子类属性解析:fromValue:keyPath相应属性的初始值toValue:keyPath相应属性的结束值随着动画的进行,在长度为duration的持续时间内,keyPath相应属性的值从fromValue渐渐地变为toValue如果fillMode=kCAFillModeForwards和removedOnComletion=NO,那么在动画转载 2016-06-02 13:05:14 · 284 阅读 · 0 评论 -
iOS UI篇7—核心动画(关键帧动画)
一、简单介绍是CApropertyAnimation的子类,跟CABasicAnimation的区别是:CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimation会使用一个NSArray保存这些数值属性解析:values:就是上述的NSArray对象。里面的元素称为”关键帧”(keyframe)。动画对象会在指定的转载 2016-06-02 13:11:47 · 293 阅读 · 0 评论 -
iOS UI篇8—核心动画(转场动画和组动画)
一、转场动画简单介绍CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果属性解析:转载 2016-06-02 13:15:21 · 274 阅读 · 0 评论 -
iOS UI篇9—核心动画(UIView封装动画)
一、UIView动画(首尾)1.简单说明UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码放在[UIView beginAnimations:nil context:nil]和[UIView commitAnimations]之间常见方法解析转载 2016-06-02 13:21:32 · 377 阅读 · 0 评论 -
iOS UI篇10- Storyboard(多个Storyboard的连接)
Storyboard是apple一直推荐使用的。但是存在两个问题:多人开发时需要同时修改Storyboard很容易导致文件冲突。Storyboard文件里控制器太多,使用不方便。我想这两个问题是导致目前很多开发者选择xib或是纯代码而不是Storyboard的原因把。所以在iOS9以后出现了 Storyboard Reference。原创 2016-06-24 14:35:28 · 2358 阅读 · 0 评论 -
iOS UI篇10- Storyboard(Storyboard Reference)
在Xcode 7中,我们有一个在多个storyboards中组织scenes的新方法,并且能对它们进行引用。直接看Main.storyboard文件。我已经为了准备好了一系列组织在一个tabBar Controller下View controller。每一个tab包含一个Navigation Controller。原创 2016-06-24 15:10:41 · 935 阅读 · 0 评论 -
iOS UI篇11- Storyboard(快速实例化)
Storyboard Name和identifier如果不对,将会抛出异常。怎么避免这个问题呢?本文讨论的是如何从多个Storyboard中取出控制器实例。不用管控制在哪个Storyboard文件里,只要 控制器设置identifier为类名就OK。原创 2016-06-24 15:22:33 · 808 阅读 · 0 评论 -
iOS UI篇12- 本地通知
本地通知本地通知是由本地应用触发的,它是基于时间行为的一种通知形式,例如闹钟定时、待办事项提醒,又或者一个应用在一段时候后不使用通常会提示用户使用此应用等都是本地通知。原创 2016-07-01 15:06:55 · 485 阅读 · 0 评论 -
iOS UI篇13- UITextView、UITextField检测并过滤Emoji表情符号
UITextView UITextField 检测并过滤Emoji表情符号将苹果键盘的Emoji表情符号过滤掉。通过研究和测试,得到以下比较完美的解决方案,思路两条:1,当用户切换键盘为Emoji表情时,输入的表情不响应(即表情符号不显示到UITextView或UITextField)。原创 2016-08-01 20:32:51 · 3723 阅读 · 0 评论 -
iOS UI篇13 - 获取键盘的高度
最近做了一个自定义键盘,首先是要知道iOS设备各种键盘的高度,下面就来说一下怎么获取键盘的高度。主要是利用键盘弹出时的通知。1.在工程的 -(void)viewDidload;函数中添加键盘弹出和隐藏的通知,具体代码如下://增加监听,当键盘出现或改变时收出消息[[NSNotificationCenter defaultCenter] addObserver:self原创 2016-08-02 10:40:14 · 2745 阅读 · 0 评论 -
iOS UI篇15- 个人中心设置头像
iOS调用相机和相册并编辑保存到本地(个人中心设置头像)第一步:导入协议<UINavigationControllerDelegate,UIImagePickerControllerDelegate>#import <UIKit/UIKit.h> @interface ViewController : UIViewController<UINavigationControllerDelegate,原创 2016-08-06 11:24:20 · 580 阅读 · 0 评论 -
iOS - 二维码、条码扫描
iOS7.0后AVFoundation框架提供的原生二维码、条码扫描。#import "ViewController.h"@interface ViewController ()<AVCaptureMetadataOutputObjectsDelegate>@property (nonatomic, strong) CAShapeLayer * maskLayer;@property (nona原创 2016-11-10 10:10:42 · 399 阅读 · 0 评论