曹老師的iOS基礎(chǔ)知識(shí)D

{

??、引導(dǎo)界面

sleep(1.5);

self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

//查看版本號(hào)是否是最新的

NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary];

double version = [infoDict[@"CFBundleShortVersionString"] doubleValue];

NSUserDefaults *userDefauls = [NSUserDefaults standardUserDefaults];

//如果之前沒有存儲(chǔ)過,什么都取不出來,默認(rèn)是0

double lastVersion = [[userDefauls objectForKey:@"version"] doubleValue];

// 如果版本號(hào)相比上次是最新的控乾,則開啟引導(dǎo)界面

if (version > lastVersion) {//如果當(dāng)前的版本比之前的版本要大

//現(xiàn)實(shí)引導(dǎo)頁面

self.window.rootViewController = [[GuideViewController alloc]init];

//更新沙盒路徑中的版本信息

[userDefauls setObject:@(version) forKey:@"version"];

}else{

self.window.rootViewController = [[MainTabbarController alloc]init];

}

}

==================================================================================================================================================

{

??么介、CoreImage? ? (http://www.reibang.com/p/384ec1beb30b)

一、框架介紹:

1).CoreImage

2).是一個(gè)圖像框架 他是基于OpenGL頂層創(chuàng)建 底層則用著色器來處理圖像

3).他利用GPU基于硬件加速處理圖像

4).CoreImage 中有很多濾鏡

5).它們能夠一次給予一張圖像或者視頻幀多種視覺效果 -> 濾鏡鏈

6).而且濾鏡可以連接起來組成一個(gè)濾鏡鏈 把濾鏡效果疊加起來處理圖像

二蜕衡、CoreImage相關(guān)類的介紹

1夭拌、CoreImage框架中最基本代表圖像的對(duì)象。保存圖像數(shù)據(jù)的類衷咽,可以通過UIImage鸽扁,圖像文件或者像素?cái)?shù)據(jù)創(chuàng)建。創(chuàng)建類方法如下:

imageWithContentsOfURL:

imageWithData:

imageWithCGImage:

imageWithCVPixelBuffer:

2镶骗、CIFilter濾鏡類桶现,圖片屬性進(jìn)行細(xì)節(jié)處理的類,它對(duì)所有的像素進(jìn)行操作 用鍵—值KVC來設(shè)置鼎姊,值設(shè)置好骡和,CIFilter就可以用來生成新的CIImage輸出圖像了。

(1)相寇、按效果分類

kCICategoryDistortionEffect 扭曲效果慰于,比如bump、旋轉(zhuǎn)唤衫、hole

kCICategoryGeometryAdjustment 幾何開著調(diào)整婆赠,比如仿射變換、平切佳励、透視轉(zhuǎn)換

kCICategoryCompositeOperation 合并休里,比如源覆蓋(source over)、最小化赃承、源在頂(source atop)妙黍、色彩混合模式

kCICategoryHalftoneEffect Halftone效果,比如screen瞧剖、line screen拭嫁、hatched

kCICategoryColorAdjustment 色彩調(diào)整,比如伽馬調(diào)整抓于、白點(diǎn)調(diào)整做粤、曝光

kCICategoryColorEffect 色彩效果,比如色調(diào)調(diào)整毡咏、posterize

kCICategoryTransition 圖像間轉(zhuǎn)換驮宴,比如dissolve、disintegrate with mask呕缭、swipe

kCICategoryTileEffect 瓦片效果堵泽,比如parallelogram修己、triangle

kCICategoryGenerator 圖像生成器,比如stripes迎罗、constant color睬愤、checkerboard

kCICategoryGradient 漸變,比如軸向漸變纹安、仿射漸變尤辱、高斯?jié)u變

kCICategoryStylize 風(fēng)格化,比如像素化厢岂、水晶化

kCICategorySharpen 銳化光督、發(fā)光

kCICategoryBlur 模糊,比如高斯模糊塔粒、焦點(diǎn)模糊结借、運(yùn)動(dòng)模糊

(2)、按使用場(chǎng)景分類:

kCICategoryStillImage 用于靜態(tài)圖像

kCICategoryVideo 用于視頻

kCICategoryInterlaced 用于交錯(cuò)圖像

kCICategoryNonSquarePixels 用于非矩形像素

kCICategoryHighDynamicRange 用于HDR

(3)卒茬、查詢分類里面的效果船老,返回的是數(shù)組

[CIFilter filterNamesInCategory:kCICategoryBlur];

(4)、查詢效果里面的屬性

[CIFilter filterWithName:XXX].attributes

3.CIContext 上下文是實(shí)現(xiàn)對(duì)圖像處理的具體對(duì)象——>(用來合成源圖和濾鏡) 濾鏡對(duì)象輸出的圖像并不是合成之后的圖像需要使用圖像處理的上下文 合并輸出的圖像圃酵。

三柳畔、基本使用

1、使用步驟

1).實(shí)例CIImage—>UIImage—>CGImageRef —> CIImage

2).創(chuàng)建CIFilter濾鏡并給濾鏡設(shè)置屬性(KVC)

3).創(chuàng)建CIContext上下文

4).合并濾鏡輸出的圖像 ->得到一個(gè)合并之后的圖像

5).賦給UIImageView對(duì)象進(jìn)行顯示

2郭赐、例子

1)薪韩、創(chuàng)建CIImage

CIImage *inputImage = [CIImage imageWithCGImage:imageView.image.CGImage];

2)、查看kCICategoryColorEffect濾鏡的效果分類

NSLog(@"%@",[CIFilter filterNamesInCategory:kCICategoryColorEffect]);

3)堪置、懸著其中一個(gè)類型躬存,創(chuàng)建濾鏡對(duì)象

CIFilter *filter = [CIFilter filterWithName:@"CIColorMonochrome"];

4)张惹、打印出來的是可以進(jìn)行設(shè)置的屬性以及設(shè)置時(shí)需要的屬性

NSLog(@"attributes===%@",filter.attributes);

5)舀锨、濾鏡效果設(shè)置,(如何找到常見的濾波器參數(shù)鍵 例如? kCIInputImageKey (按住command點(diǎn)擊CIFilter 進(jìn)入接口文件 165—191行都是效果分類))

[filter setValue:inputImage forKey:kCIInputImageKey];? ? //必須有宛逗,濾鏡操作的對(duì)象

[filter setValue:[CIColor colorWithRed:0.8 green:0.5 blue:0.54 alpha:1] forKey:kCIInputColorKey];

[filter setValue:@0.5 forKey:kCIInputIntensityKey];

6)坎匿、創(chuàng)建CIContext上下文,這時(shí)已經(jīng)生成帶有濾鏡的圖像 但是沒有合成 還是兩部分 需要進(jìn)行合成

CIContext *context = [CIContext contextWithOptions:nil];

7)雷激、合并濾鏡輸出的圖像,得到一個(gè)合并之后的圖像

CIImage *outputImage = filter.outputImage;

CGImageRef imageRef =? [context createCGImage:outputImage fromRect:outputImage.extent];

8)替蔬、顯示到視圖上

imageView.image = [UIImage imageWithCGImage:imageRef];

四、人臉識(shí)別 (http://www.reibang.com/p/d9467ec6d746)

1屎暇、構(gòu)建方法承桥,用于返回識(shí)別到臉的數(shù)量

-(NSArray *)detectFaceWithImage:(UIImage *)faceImage

{

NSDictionary *opts = [NSDictionary dictionaryWithObject:

CIDetectorAccuracyHigh forKey:CIDetectorAccuracy];

CIDetector *detectoer=[CIDetector detectorOfType:CIDetectorTypeFace context:nil options:opts];

CIImage *ciimage=[CIImage imageWithCGImage:faceImage.CGImage];

NSArray *featrues=[detectoer featuresInImage:ciimage];

if(featrues.count>0)

return featrues;

return nil;

}

2、在viewDidoad中實(shí)現(xiàn)

- (void)viewDidLoad {

[super viewDidLoad];

//帶人臉的照片

UIImage *image=[UIImage imageNamed:@"face.jpg"];

NSArray *results=[self detectFaceWithImage:image];

//可能會(huì)存在多個(gè)臉部根悼,這里只考慮一張臉的情況

if(results.count>0)

{

CIFaceFeature *face=[results firstObject];

if(face.hasSmile)

NSLog(@"有微笑");

if(face.leftEyeClosed)

NSLog(@"左眼閉著的");

if(face.rightEyeClosed)

NSLog(@"右眼閉著的");

if(face.hasLeftEyePosition)

NSLog(@"左眼位置:%@",NSStringFromCGPoint(face.leftEyePosition));

if(face.hasRightEyePosition)

NSLog(@"右眼位置:%@",NSStringFromCGPoint(face.rightEyePosition));

if(face.hasMouthPosition)

NSLog(@"嘴巴位置:%@",NSStringFromCGPoint(face.mouthPosition));

NSLog(@"臉部區(qū)域:%@",NSStringFromCGRect(face.bounds));

if(face.bounds.size.width==face.bounds.size.height)

NSLog(@"臉蛋是圓的-.-");

}

}

}

==================================================================================================================================================

{

??凶异、宏定義那件小事

1蜀撑、屏幕的寬、高

#define kScreenWidth? [UIScreen mainScreen].bounds.size.width

#define kScreenHeight [UIScreen mainScreen].bounds.size.height

2剩彬、版本號(hào) 判斷版本號(hào)

#define iOS7 ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0 && [[UIDevice currentDevice].systemVersion floatValue] < 8.0)

#define iOS8 ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0 && [[UIDevice currentDevice].systemVersion floatValue] < 9.0)

#define iOS9 ([[UIDevice currentDevice].systemVersion floatValue] >= 9.0)

3酷麦、不同屏幕寬、高比例系數(shù)

#define kRatioWidth? kScreenWidth/320

#define kRatioHeight kScreenHeight/568

4喉恋、RGB快速取顏色

#define RGB(r,g,b) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:1]

#define RGBA(r,g,b,a) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:a]

}

==================================================================================================================================================

{

??沃饶、UIApplication

1、創(chuàng)建(單例類)

[UIApplication sharedApplication]轻黑;

2糊肤、狀態(tài)欄樣式? ? ? ? statusBarStyle

注意:務(wù)必在plist中添加View controller-based status bar appearance,設(shè)置為NO氓鄙。若是YES轩褐,改不動(dòng)

在控制器中復(fù)寫方法

- (UIStatusBarStyle)preferredStatusBarStyle {

returnUIStatusBarStyleLightContent;

}

或者:

[[UIApplicationsharedApplication]setStatusBarStyle:UIStatusBarStyleDefaultanimated:YES];

3、是否隱藏狀態(tài)欄? ? statusBarHidden

在控制器中復(fù)寫方法

- (

BOOL)prefersStatusBarHidden {

returnYES;

}

4玖详、狀態(tài)欄大小? ? ? ? statusBarFrame

5把介、APP圖標(biāo)的徽標(biāo)數(shù)字值? ? applicationIconBadgeNumber

注意:必須先設(shè)置消息通知

6、

// 設(shè)置標(biāo)簽控制器的徽標(biāo)

if (self.viewControllers.count >= 3) {

UIViewController *viewCtroller = self.viewControllers[3];

if (listArray.count == 0) {

viewCtroller.tabBarItem.badgeValue = nil;

} else {

viewCtroller.tabBarItem.badgeValue = [NSString stringWithFormat:@"%ld", listArray.count];

}

}

}

==================================================================================================================================================

{

??蟋座、C語言常用函數(shù)

1拗踢、scanf鍵盤輸入:

(1)、程序運(yùn)行到當(dāng)前代碼向臀,會(huì)停下來巢墅,等待鍵盤的輸入,直到輸入完然后按下return券膀,程序才往下執(zhí)行

(2)君纫、函數(shù)輸入成功后的返回1

2、

}

==================================================================================================================================================

{

??芹彬、cocoapods安裝

現(xiàn)在的mac系統(tǒng)已經(jīng)默認(rèn)安裝好Ruby環(huán)境蓄髓,那么下載和安裝CocoaPods將十分簡(jiǎn)單,只需要一行命令舒帮。在Terminator(也就是終端)中輸入以下命令:

1会喝、sudo gem install cocoapods

但是,在終端中敲入這個(gè)命令之后玩郊,會(huì)發(fā)現(xiàn)半天沒有任何反應(yīng)肢执。原因是那堵墻阻擋了cocoapods.org。

解決辦法是译红,我們可以用淘寶的Ruby鏡像來訪問cocoapods预茄。按照下面的順序在終端中敲入依次敲入命令:

2、$ gem sources --remove https://rubygems.org/

//等有反應(yīng)之后再敲入以下命令

3侦厚、$ gem sources -a http://ruby.taobao.org/

為了驗(yàn)證你的Ruby鏡像是并且僅是taobao耻陕,可以用以下命令查看:

4昵慌、$ gem sources -l

只有在終端中出現(xiàn)下面文字才表明你上面的命令是成功的:

*** CURRENT SOURCES ***

http://ruby.taobao.org/

這時(shí)候,你再次在終端中運(yùn)行:

5淮蜈、$ sudo gem install cocoapods

等上十幾秒鐘斋攀,CocoaPods就可以在你本地下載并且安裝好了,不再需要其他設(shè)置梧田。

6淳蔼、$ pod setup

出現(xiàn)

Setting up CocoaPods master repo

開始下載,可進(jìn)入目錄~/.cocoapods/

使用du -sh查看下載進(jìn)度裁眯,每隔一段時(shí)間查看一次

某些環(huán)境原因?qū)е聀od更新不了鹉梨,可能原因有,1)gem版本太低穿稳;2)github無法鏈接存皂;3).cocoapods目錄下的配置信息錯(cuò)誤。我們可以一個(gè)一個(gè)來排除逢艘,

首先更新gem到最新版本旦袋,在終端中輸入:

$ sudo gem update --system

然后檢查是否可以ping通github,在終端中輸入:

$ ping github.com

然后查看pob repo list:

$ pod repo list

結(jié)果顯示0 repos它改,說明沒有安裝成功疤孕;

刪除.cocoapods目錄,重新下載pod更新:

$ cd ~/.cocoapods/

$ sudo -rm -rf ~/.cocoapods/

}

==================================================================================================================================================

{

??央拖、發(fā)起通電

1祭阀、調(diào)用 自帶mail

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://admin@hzlzh.com"]];

2、調(diào)用 電話phone

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://8008808888"]];

3鲜戒、調(diào)用 SMS

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://800888"]];

4专控、調(diào)用自帶 瀏覽器 safari

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.hzlzh.com"]];

調(diào)用phone可以傳遞號(hào)碼,調(diào)用SMS 只能設(shè)定號(hào)碼遏餐,不能初始化SMS內(nèi)容伦腐。

若需要傳遞內(nèi)容可以做如下操作:

}

==================================================================================================================================================

{

??、傳感器的使用

一境输、加速度傳感器

1蔗牡、創(chuàng)建? ? #import

CMMotionManager *_cmm = [[CMMotionManager alloc] init];

2、設(shè)置獲取數(shù)據(jù)的頻率 每隔一秒

_cmm.accelerometerUpdateInterval = 1;

3嗅剖、判斷傳感器是否可用

if (_cmm.accelerometerAvailable) {

4、不斷更新獲取數(shù)據(jù)

[_cmm startGyroUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMGyroData * _Nullable gyroData, NSError * _Nullable error) {

NSLog(@"%@", gyroData);

}];

5嘁扼、當(dāng)傳感器處于活躍狀態(tài)信粮,關(guān)閉傳感器

if (_cmm.accelerometerActive) {

_cmm.stopAccelerometerUpdates;

}

二、陀螺儀

#import

//設(shè)置陀螺儀更新數(shù)據(jù)周期

_cmm.gyroUpdateInterval = 1;

//當(dāng)陀螺儀可用

if (_cmm.gyroAvailable) {

//開啟陀螺儀更新數(shù)據(jù)

[_cmm startGyroUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMGyroData * _Nullable gyroData, NSError * _Nullable error) {

NSLog(@"陀螺儀:%@", gyroData);

}];

}

//關(guān)閉陀螺儀數(shù)據(jù)更新

if (_cmm.gyroActive) {

_cmm.stopGyroUpdates;

}

三趁啸、距離傳感器

#import

//距離傳感器 (傳感器攝像頭會(huì)識(shí)別障礙物强缘,有東西時(shí)為yes督惰,否則為no。例子:靠近時(shí)屏幕滅旅掂,遠(yuǎn)離屏幕時(shí)亮)

//開啟監(jiān)聽距離傳感器

[UIDevice currentDevice].proximityMonitoringEnabled = YES;

//添加監(jiān)聽器

[[NSNotificationCenter defaultCenter] addObserver:self

selector:@selector(proximityChange)

name:UIDeviceProximityStateDidChangeNotification

object:nil];

- (void)proximityChange {

//獲取傳感器狀態(tài)

NSLog(@"當(dāng)前距離傳感器為:%d", [UIDevice currentDevice].proximityState);

}

//關(guān)閉距離傳感器

[[NSNotificationCenter defaultCenter] removeObserver:self];

四赏胚、電源傳感器? ? (跟距離傳感器用法一致)

#import

[UIDevice currentDevice].batteryMonitoringEnabled = YES;

[[NSNotificationCenter defaultCenter] addObserver:self

selector:@selector(batteryChange)

name:UIDeviceBatteryLevelDidChangeNotification

object:nil];

/*

UIDeviceBatteryStateDidChangeNotification? 電池狀態(tài)的改變:是否連接上電源充電

UIDeviceBatteryLevelDidChangeNotification? 電池電量狀態(tài)的改變

*/

NSLog(@"電池電量:%.2f", [UIDevice currentDevice].batteryLevel);

五、磁場(chǎng)傳感器

#import

1商虐、創(chuàng)建管理者

CLLocationManager *_manager = [[CLLocationManager alloc] init];

2觉阅、設(shè)置代理對(duì)象,并簽訂協(xié)議CLLocationManagerDelegate

_manager.delegate = self;

3秘车、啟動(dòng)指南針更新程序

[_manager startUpdatingHeading];

4典勇、代理方法

已經(jīng)更新指南針

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading {

NSLog(@"%@", newHeading);

//指南針_poinTto是指南針圖片,改變角度

_poinTto.transform = CGAffineTransformMakeRotation((180 - newHeading.magneticHeading)/180.0*3.1415926);

}

收起鍵盤的方法

用于獲取控制器比較困難的情況

1、[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil];

2叮趴、[[[UIApplicationsharedApplication]keyWindow]endEditing:YES];

3割笙、重寫控制器的touchesBegin方法

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event {

[self.viewendEditing:YES];

}

4、調(diào)用響應(yīng)控件的resignFirstResponder方法

{

1眯亦、UI界面更新必須回到主線程

2伤溉、storyBoard、xib創(chuàng)建的界面妻率,都不能用alloc-init訪問谈火,應(yīng)該用UIStoryBoard-UIBundle訪問

3、先接受通知舌涨,后發(fā)送通知

4糯耍、在Xcode中刪除文件夾,有時(shí)會(huì)刪除不徹底囊嘉,導(dǎo)致拖入文件夾時(shí)產(chǎn)生同名沖突温技,應(yīng)該show in finder在文件夾中刪除

5、狀態(tài)欄就是個(gè)window扭粱,使用static修飾window舵鳞,能保持一直存在

6、https加密的方式是SSL

7琢蛤、nil:對(duì)象為空蜓堕。nil對(duì)象調(diào)用方法什么都不會(huì)發(fā)生

Nil:類為空。Nil調(diào)用類方法博其,什么都不會(huì)發(fā)送

Class c = NSClassFromString(@“smsm”)

Null\null\NULL:C語言中表示空

8套才、MRR中是set方法,先判斷新舊對(duì)象是否一樣慕淡,若不一樣背伴,將舊對(duì)象release再將新對(duì)象retain或copy

9、set、init都應(yīng)該對(duì)對(duì)象retain一次

10傻寂、KVC(key-value-coding)鍵值編碼息尺,可以不通過設(shè)置器方法直接給屬性賦值,波壞了封裝性

11疾掰、KVO(key-value-observe)觀察者模式

屬性不能直接賦值搂誉,應(yīng)該使用set、kvc賦值静檬,才能觸發(fā)炭懊;添加多個(gè)觀察者也只會(huì)響應(yīng)同一個(gè)方法;每天加一個(gè)觀察者巴柿,就應(yīng)該移除一個(gè)觀察者

12凛虽、在info.plist中添加Localizations設(shè)置item為Chinese (simplified)。這樣打開圖片庫或拍照的時(shí)候就可以顯示簡(jiǎn)體中文了

13广恢、協(xié)議的默認(rèn)方法是必須的@request

}

———————————————————————————————————————————————零散的代碼——————————————————————————————————————————————————————————————————

{

1凯旋、獲取版本號(hào)

[[UIDevice currentDevice].systemVersion floatValue]

2、獲取鍵盤高度

1钉迷、監(jiān)聽鍵盤的彈出(鍵盤彈出,系統(tǒng)會(huì)發(fā)送通知)

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardshow:) name:UIKeyboardWillShowNotification object:nil];

2至非、在接收通知的方法里獲取

- (void)keyboardshow:(NSNotification *)notification{

NSLog(@"%@",notification);

//取出鍵盤的frame

CGRect frame = [notification.userInfo [UIKeyboardFrameEndUserInfoKey]CGRectValue];

//獲取高度

CGFloat height = frame.size.height;

}

3、是否讓scrollView對(duì)象從導(dǎo)航欄底部開始滑動(dòng)(默認(rèn)是允許的YES)

self.automaticallyAdjustsScrollViewInsets = NO;

4糠聪、狀態(tài)欄的樣式

UIStatusBarStyleDefault

UIStatusBarStyleLightContent

//在控制器中復(fù)寫方法

- (UIStatusBarStyle)preferredStatusBarStyle;

5荒椭、設(shè)置一個(gè)文件整個(gè)項(xiàng)目可用common,將文佳拖到該下地方(更換項(xiàng)目目錄后舰蟆,要重新拖拽)

Build Settings -> Prefix Header

6趣惠、利用字符串創(chuàng)建一個(gè)類的對(duì)象

UIViewController *vc = [[NSClassFromString(TwoViewController) alloc] init];

7、調(diào)節(jié)屏幕亮度(不局限于某個(gè)APP)

[[UIScreen mainScreen] setBrightness:(0~1之間的浮點(diǎn)數(shù))];

}

==================================================================================================================================================

代碼塊 快速開發(fā)

~/Library/Developer/Xcode/UserData/CodeSnippets

{

適配屏幕

xib:

1身害、讓一個(gè)視圖的寬高等比

need-to-insert-img

}

判斷兩個(gè)區(qū)域是否有交集

CGRectIntersectsRect(attribue.frame, rect);

UICollectionViewFlowLayout 設(shè)置集合視圖動(dòng)畫

#pragma mark -當(dāng)當(dāng)前布局bounds發(fā)生改變時(shí)味悄,讓其他布局不發(fā)生改變- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds {

returnYES;

}

#pragma mark -前端頁面的放大效果(布局時(shí)調(diào)用)

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect {

//1.獲取當(dāng)前顯示collectionview的區(qū)域和坐標(biāo)CGRectvisibaleRect;

visibaleRect.

origin=self.collectionView.contentOffset;

visibaleRect.

size=self.collectionView.bounds.size;

//2.調(diào)用父類方法獲取當(dāng)前rect中這些item的布局信息NSArray*attributes = [superlayoutAttributesForElementsInRect:rect];

NSArray*safeAtteibutes = [[NSArrayalloc]initWithArray:attributescopyItems:YES];

for(UICollectionViewLayoutAttributes*attribueinsafeAtteibutes) {

if(CGRectIntersectsRect(attribue.frame, rect)) {//判斷是否有交集(item是否進(jìn)去系統(tǒng)檢測(cè)范圍之內(nèi))floatdistance =CGRectGetMidX(visibaleRect) - attribue.center.x;//獲取當(dāng)前item到中點(diǎn)的距離floatdiscale = distance/200;//放大倍數(shù)if(ABS(distance) <200) {

floatscale =1+0.3*(1-ABS(discale));//湊數(shù)

attribue.

transform3D=CATransform3DMakeScale(scale, scale,1);//對(duì)空間三個(gè)方向進(jìn)行放大

attribue.

zIndex=1;//更改在z軸的的位置

}

}

}

returnsafeAtteibutes;//返回放大后的效果圖

}

剪切板 復(fù)制

UIPasteboard?*pasteboard?=[UIPasteboard?generalPasteboard];

[pasteboard?setString:[[self?textLabel]text]];

plist文件讀寫

//?文件保存的地址分兩種

//?1、獲取應(yīng)用程序沙盒下的Documents目錄(或其它目錄)

NSArray*pathArr?=?NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

NSString*path?=?[pathArrobjectAtIndex:0];

//得到完整的文件名

NSString*filePath?=?[pathstringByAppendingPathComponent:@"test.plist"];

//?2塌鸯、[NSBundle?mainBundle]

//?NSString?*filePath?=?[[NSBundle?mainBundle]?pathForResource:@"test"?ofType:@"plist"];

NSMutableDictionary*data?=?[[NSMutableDictionaryalloc]initWithContentsOfFile:filePath];

NSLog(@"%@",?data);

//?添加一項(xiàng)內(nèi)容

[datasetObject:@"add?some?content"forKey:@"c_key"];

//?文件寫入

if([datawriteToFile:filePathatomically:YES])?{

NSLog(@"寫入成功");

}else{

NSLog(@"寫入失敗");

}

//?那怎么證明我的數(shù)據(jù)寫入了呢侍瑟?讀出來看看

//?文件讀取

NSMutableDictionary*data1=?[[NSMutableDictionaryalloc]initWithContentsOfFile:filePath];

NSLog(@"%@",?data1);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市丙猬,隨后出現(xiàn)的幾起案子涨颜,更是在濱河造成了極大的恐慌,老刑警劉巖茧球,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件庭瑰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡袜腥,警方通過查閱死者的電腦和手機(jī)见擦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門钉汗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來羹令,“玉大人鲤屡,你說我怎么就攤上這事「3蓿” “怎么了酒来?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)肪凛。 經(jīng)常有香客問我堰汉,道長(zhǎng),這世上最難降的妖魔是什么伟墙? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任翘鸭,我火速辦了婚禮,結(jié)果婚禮上戳葵,老公的妹妹穿的比我還像新娘就乓。我一直安慰自己,他們只是感情好拱烁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布生蚁。 她就那樣靜靜地躺著,像睡著了一般戏自。 火紅的嫁衣襯著肌膚如雪邦投。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天擅笔,我揣著相機(jī)與錄音志衣,去河邊找鬼。 笑死猛们,一個(gè)胖子當(dāng)著我的面吹牛念脯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播阅懦,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼和二,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了耳胎?” 一聲冷哼從身側(cè)響起惯吕,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎怕午,沒想到半個(gè)月后废登,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡郁惜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年堡距,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了甲锡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡羽戒,死狀恐怖缤沦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情易稠,我是刑警寧澤缸废,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站驶社,受9級(jí)特大地震影響企量,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜亡电,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一届巩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧份乒,春花似錦恕汇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至孝凌,卻和暖如春方咆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蟀架。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工瓣赂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人片拍。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓煌集,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親捌省。 傳聞我的和親對(duì)象是個(gè)殘疾皇子苫纤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容