這裡主要講一些我在日常開發中用到的一些小的技巧,其實也算不上技巧吧,就是省去一些不必要的**,或者有的小問題困擾你很久說不行在這裡你能找到答案
在ios修改view的frame,我們經常需要寫一大堆**,來修改frame中的乙個小屬性,這裡有乙個方法,就是直接修改frame的每個值
新建乙個category uiview+ppsframe.h
#import在.m檔案中設定各個屬性@inte***ce uiview (ppsframe)
@property (assign, nonatomic) cgfloat top;//上 相當於frame.origin.y
@property (assign, nonatomic) cgfloat bottom;//下 相當於frame.size.height + frame.origin.y
@property (assign, nonatomic) cgfloat left;//相當於frame.origin.x
@property (assign, nonatomic) cgfloat right;//相當於frame.origin.x+frame.size.width
@property (assign, nonatomic) cgfloat centerx;
@property (assign, nonatomic) cgfloat centery;
@property (assign, nonatomic) cgfloat width;
@property (assign, nonatomic) cgfloat height;
@property (assign, nonatomic) cgsize size;
@end
#import "uiview+layout.h"在專案中如果我們需要一些公共的引用,或者一些全域性的巨集 那我們經常在pch中設定好@implementation uiview (layout)
@dynamic top;
@dynamic bottom;
@dynamic left;
@dynamic right;
@dynamic width;
@dynamic height;
@dynamic size;
- (cgfloat)top
- (void)settop:(cgfloat)top
- (cgfloat)left
- (void)setleft:(cgfloat)left
- (cgfloat)bottom
- (void)setbottom:(cgfloat)bottom
- (cgfloat)right
- (void)setright:(cgfloat)right
- (cgfloat)centerx
- (void)setcenterx:(cgfloat)centerx
- (cgfloat)centery
- (void)setcentery:(cgfloat)centery
- (cgfloat)width
- (void)setwidth:(cgfloat)width
- (cgfloat)height
- (void)setheight:(cgfloat)height
- (cgsize)size
- (void)setsize:(cgsize)size
@end
具體怎麼設定呢 在專案下新建乙個pch檔案
一般我會取名 專案名-prefixheader
在target——>bulid setting 中 設定 prefixheader
我的專案資料夾結構
$(srcroot)這個是指工程的根目錄
pch.h中
//要給tableheaderview賦乙個高度不為0的view才能處理頂部留白//
// created by 羊謙 on 2016/10/28.
//
//在這裡直接定義你的巨集變數 或者公共引用就行
//分組列表頭部空白處理其實就是根據view的響應鏈,來查詢viewcontrolleruiview *view = [[uiview alloc] initwithframe:cgrectmake(0, 0, 0, 0.1)];
self.tableview.tableheaderview = view;
- (uiviewcontroller *)viewcontroller方法二:獲取所有儲存在nsuserdefaults中的資料,因為是按照key-value形式儲存,所以迴圈key就能夠刪除資料next = next.nextresponder;
}
return viewcontroller;
}
- (void)cleardefaults這裡的定時器,是乙個每秒在主線程跑的乙個方法[defs synchronize];
}
__block int countsecond = 30; //倒計時dispatch_queue_t queue = dispatch_get_global_queue(dispatch_queue_priority_default, 0);
dispatch_source_t timer = dispatch_source_create(dispatch_source_type_timer, 0, 0,queue);
dispatch_source_set_timer(timer,dispatch_walltime(null, 0),1.0*nsec_per_sec, 0); //每秒執行
dispatch_source_set_event_handler(timer, ^);
}else);
countsecond--;
}
});
dispatch_resume(timer);
- (long long)filesizeatpath:(nsstring *)pathreturn 0;
}
- (long long)foldersizeatpath:(nsstring *)path}
}
return foldersize;
}
floor(x)函式,是乙個向下取整函式,是乙個c函式 即是去不大於x的乙個最大整數floor(3.12) = 3 floor(4.9) = 4
與floor(x)函式對應的是ceil函式
這個即是向上取整了
ceil(3.9) = 4 ceil(1.2) = 2
uiimage *image = [uiimage imagenamed:@"image"];self.myview.layer.contents = (__bridge id _nullable)(image.cgimage);
self.myview.layer.contentsrect = cgrectmake(0, 0, 0.5, 0.5);
iOS 基礎開發技巧 一
文章也會同步更新到我的部落格 ppsheep.com 這裡主要講一些我在日常開發中用到的一些小的技巧,其實也算不上技巧吧,就是省去一些不必要的 或者有的小問題困擾你很久說不行在這裡你能找到答案 在專案中如果我們需要一些公共的引用,或者一些全域性的巨集 那我們經常在pch中設定好 具體怎麼設定呢 在專...
iOS開發技巧
1.xcode外掛程式目錄 2.ios靜態庫打包 1.新建工程 framework library 2.寫完framework專案後,直接編譯,會生成 h檔案和.a實現檔案 看不見原始碼的二進位制檔案 但是編譯成 a檔案時,要針對不同的平台編譯 繼而生成不同平台上可以使用的 a 檔案 1 ios d...
iOS開發技巧7
今天開發的時候需要日期轉換成星期的方法 也是網上搜尋到的 nsdateformatter inputformatter nsdateformatter alloc init inputformatter setdateformat nsdate formatterdate inputformatte...