iOS開發(fā)中的實用小技巧(一)

在iOS開發(fā)中經(jīng)常會遇到一些看似非常復(fù)雜且不好理解,但知道方法后恍然大悟的代碼片段,我進(jìn)行了一下基本的整理歸納供大家學(xué)習(xí)交流,希望大家可以找到自習(xí)需要的東西,也歡迎補充,我也會在以后的的文章中陸續(xù)更新,下面開始擼代碼!!!

1、改變 UITextField 占位文字 顏色

[_userName setValue:[UIColor whiteColor] forKeyPath:@"_placeholderLabel.textColor"];

2、禁止橫屏 在Appdelegate 使用

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
    return UIInterfaceOrientationMaskPortrait;
}

3歪玲、修改狀態(tài)欄顏色 (默認(rèn)黑色唯鸭,修改為白色)

//1.在Info.plist中設(shè)置UIViewControllerBasedStatusBarAppearance 為NO
//2.在需要改變狀態(tài)欄顏色的 AppDelegate中在 didFinishLaunchingWithOptions 方法中增加:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
//3.如果需要在單個ViewController中添加河狐,在ViewDidLoad方法中增加:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

4郎哭、模糊效果

UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
UIVisualEffectView *test = [[UIVisualEffectView alloc] initWithEffect:effect];
test.frame = self.view.bounds;
test.alpha = 0.5;
[self.view addSubview:test];

5狂鞋、強制橫屏代碼

#pragma mark - 強制橫屏代碼
- (BOOL)shouldAutorotate {
    //是否支持轉(zhuǎn)屏
    return NO;
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    //支持哪些轉(zhuǎn)屏方向
    return UIInterfaceOrientationMaskLandscape;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    //屏幕的初始旋轉(zhuǎn)方向
    return UIInterfaceOrientationLandscapeRight;
}

- (BOOL)prefersStatusBarHidden {
    return NO;
}

6著淆、在狀態(tài)欄顯示有網(wǎng)絡(luò)請求的提示器

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

7劫狠、相對路徑

$(SRCROOT)/

8、視圖是否自動(只是把第一個自動)向下挪64

self.automaticallyAdjustsScrollViewInsets = NO; //不讓系統(tǒng)幫咱們把scrollView及其子類的視圖向下調(diào)整64

9永部、 隱藏手機的狀態(tài)欄

-(BOOL)prefersStatusBarHidden {
    return YES;
}

10独泞、代理的安全保護(hù)【斷是否有代理,和代理是否執(zhí)行了代理方法】

if (self.delegate && [self.delegate respondsToSelector:@selector(passValueWithArray:)]) {
    // make you codes
    
}

11苔埋、在ARC工程中導(dǎo)入MRC的類和在MRC工程中導(dǎo)入ARC的類
// 在ARC工程中導(dǎo)入MRC的類 我們選中工程->選中targets中的工程,然后選中Build Phases->在導(dǎo)入的類后邊加入標(biāo)記 - fno-objc-arc
// 在MRC工程中導(dǎo)入ARC的類 路徑與上面一致,在該類后面加上標(biāo)記 -fobjc-arc

12懦砂、通過2D仿射函數(shù)實現(xiàn)小的動畫效果(變大縮小) --可用于自定義pageControl中

[UIView animateWithDuration:0.3 animations:^{
    imageView.transform = CGAffineTransformMakeScale(2, 2);
} completion:^(BOOL finished) {
    imageView.transform = CGAffineTransformMakeScale(1.0, 1.0);
}];

13、查看系統(tǒng)所有字體

for (id familyName in [UIFont familyNames]) {
    NSLog(@"%@", familyName);
    for (id fontName in [UIFont fontNamesForFamilyName:familyName]) NSLog(@"  %@", fontName);
}

14、判斷一個字符串是否為數(shù)字

NSCharacterSet *notDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
if ([str rangeOfCharacterFromSet:notDigits].location == NSNotFound) {// 是數(shù)字

} else {// 不是數(shù)字

}

15荞膘、將一個view保存為pdf格式

- (void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename
{
    NSMutableData *pdfData = [NSMutableData data];
    UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil);
    UIGraphicsBeginPDFPage();
    CGContextRef pdfContext = UIGraphicsGetCurrentContext();
    [aView.layer renderInContext:pdfContext];
    UIGraphicsEndPDFContext();

    NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
    NSString* documentDirectory = [documentDirectories objectAtIndex:0];
    NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:aFilename];
    [pdfData writeToFile:documentDirectoryFilename atomically:YES];
    NSLog(@"documentDirectoryFileName: %@",documentDirectoryFilename);
}

16罚随、讓一個view在父視圖中心

child.center = [parent convertPoint:parent.center fromView:parent.superview];

17、獲取當(dāng)前導(dǎo)航控制器下前一個控制器

- (UIViewController *)backViewController
{
    NSInteger myIndex = [self.navigationController.viewControllers indexOfObject:self];

    if ( myIndex != 0 && myIndex != NSNotFound ) {
        return [self.navigationController.viewControllers objectAtIndex:myIndex-1];
    } else {
        return nil;
    }
}

18羽资、保存UIImage到本地

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Image.png"];
[UIImagePNGRepresentation(image) writeToFile:filePath atomically:YES];

19淘菩、鍵盤上方增加工具欄

UIToolbar *keyboardDoneButtonView = [[UIToolbar alloc] init];
[keyboardDoneButtonView sizeToFit];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"
                                                               style:UIBarButtonItemStyleBordered target:self
                                                              action:@selector(doneClicked:)];
[keyboardDoneButtonView setItems:[NSArray arrayWithObjects:doneButton, nil]];
txtField.inputAccessoryView = keyboardDoneButtonView;

20、在image上繪制文字并生成新的image

    UIFont *font = [UIFont boldSystemFontOfSize:12];
    UIGraphicsBeginImageContext(image.size);
    [image drawInRect:CGRectMake(0,0,image.size.width,image.size.height)];
    CGRect rect = CGRectMake(point.x, point.y, image.size.width, image.size.height);
    [[UIColor whiteColor] set];
    [text drawInRect:CGRectIntegral(rect) withFont:font]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末屠升,一起剝皮案震驚了整個濱河市潮改,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌弥激,老刑警劉巖进陡,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異微服,居然都是意外死亡趾疚,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門以蕴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來糙麦,“玉大人,你說我怎么就攤上這事丛肮∩陌酰” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵宝与,是天一觀的道長焚廊。 經(jīng)常有香客問我,道長习劫,這世上最難降的妖魔是什么咆瘟? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮诽里,結(jié)果婚禮上袒餐,老公的妹妹穿的比我還像新娘。我一直安慰自己谤狡,他們只是感情好灸眼,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著墓懂,像睡著了一般焰宣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上捕仔,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天宛徊,我揣著相機與錄音佛嬉,去河邊找鬼逻澳。 笑死闸天,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的斜做。 我是一名探鬼主播苞氮,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瓤逼!你這毒婦竟也來了笼吟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤霸旗,失蹤者是張志新(化名)和其女友劉穎贷帮,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诱告,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡撵枢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了精居。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锄禽。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖靴姿,靈堂內(nèi)的尸體忽然破棺而出沃但,到底是詐尸還是另有隱情,我是刑警寧澤佛吓,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布宵晚,位于F島的核電站,受9級特大地震影響维雇,放射性物質(zhì)發(fā)生泄漏淤刃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一谆沃、第九天 我趴在偏房一處隱蔽的房頂上張望钝凶。 院中可真熱鬧,春花似錦唁影、人聲如沸耕陷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哟沫。三九已至,卻和暖如春锌介,著一層夾襖步出監(jiān)牢的瞬間嗜诀,已是汗流浹背猾警。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留隆敢,地道東北人发皿。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像拂蝎,于是被迫代替她去往敵國和親穴墅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

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