前言:最近一直忙於項目,總結都直接順手放在了筆記裏,文章疏於打理遲遲沒有更新,在這裏跟各位說句對不起。本來打算上一篇記錄到400條的時候再新開一篇,可是更新的時候一直出現崩潰的情況,索性就直接轉到這裏了。git
1.關於在NSobject類中沒法聲明UImageView *等參數
Framwork要加入UIKit框架,UIImage才能使用json
2.打包時選擇了表述文件後
只會顯示對應的一個證書,只要有多個證書就重啓一遍xcodexcode
3.白色字體由於背景圖片而看不清如何處理
在背景圖片上蒙一層半透明的UIImageView便可框架
4.bounce能夠控制scrollview的反彈效果
爲BOOL型變量,可設置iphone
5.在響應事件內切換tabBar編輯器
self.tabBarController.selectedIndex = 1;
6.git 快速找到clone地址ide
git remote -v
7.打包時出現 3D0CC99EBF87D6479CF799461890E07C85685769: no identity found Command /usr/bin/codesign failed with exit code 1 錯誤
相似錯誤是證書不對,沒運行證書測試
8.iOS報錯[__NSCFNumber length]: unrecognized selector sent to instance
出現這種報錯很大的緣由是由於類型給錯了,或許你這個數據是從json上解析後獲得的,可是須要看一下這個數據是NSString仍是NSNumber類型,若是是NSNumber類型的話,你又直接使用NSString類型的變量去接收他,那麼確定會報這樣的錯誤,因此必定要注意數據的類型字體
9.設置鍵盤右下角按鈕的類型,如:完成ui
self.searchTextField.returnKeyType = UIReturnKeyDone;
10.當代碼建立tableIView後註冊的cell爲nil時的緣由
1.該tableView被隱藏,查看hidden屬性是否爲YES
2.是否同一界面存在多個tableView,是的話在須要判斷的地方以下處理:
tableView = tableViewA;
tableView = tableViewB;
11.UIButton的UIControlEventTouchUpInside無響應問題
查看其父控件是否繼承了某些類,或直接從父控件中轉移到平級便可解決
12.在實現錄音長按等效果時,UIButton不須要加長按手勢
使用UIControlEventTouchDown(點下去) 這個按下去的操做來判斷
監聽擡手動做時用UIControlEventTouchUpInside(點下去彈起來)來判斷便可
13.長按手勢的開始和結束
-(void)longPress:(UILongPressGestureRecognizer *)gestureRecognizer { //長按開始 if ([gestureRecognizer state] == UIGestureRecognizerStateBegan) { [self.voiceSignView.voiceButton setBackgroundImage:[UIImage imageNamed:@"bf1"] forState:UIControlStateNormal]; self.voiceSignView.promptLabel.text = @"鬆手結束"; self.voiceSignView.cancelButton.hidden = YES; self.voiceSignView.saveButton.hidden = YES; //長按結束 } else if ([gestureRecognizer state] == UIGestureRecognizerStateEnded) { } }
14.tableView返回頂部,一般使用在下拉刷新時
[self.tableView setContentOffset:CGPointMake(0, 0) animated:YES];
15.presentViewController過去以後navigation不見了或者push操做沒法響應
是由於presentViewController 須要使用的是navigationController的sb ID,換成navigationController的sb ID就能夠了。
16.真機測試出現Your build settings specify a provisioning profile with
1.找到項目中的**.xcodeproj文件,點擊右鍵,show package contents(打開包內容)。
2.打開後找到project.pbxproj文件,用文本編輯器打開。其實就是右鍵,點擊open就行了。
3.打開這個文件後,按command+F,在這個文件中查找「PROVISIONING_PROFILE",找到和這個「
PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB"; "PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";」相似的都刪除。
4.而後保存文件,從新打開項目。xcode會提示你從新下載安裝provisioning profile文件。下載後安裝上就能夠。
17.更改segmentControl圖片
UIImage * imageSel = [UIImage imageNamed:@"d_seg_sel"]; [self.segmentButton setBackgroundImage:[imageSel resizableImageWithCapInsets:UIEdgeInsetsMake(10, 10, 0, 10) resizingMode:UIImageResizingModeStretch] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; UIImage * imageNor = [UIImage imageNamed:@"d_seg_nor"]; [self.segmentButton setBackgroundImage:[imageNor resizableImageWithCapInsets:UIEdgeInsetsMake(10, 10, 0, 10) resizingMode:UIImageResizingModeStretch] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
18.隱藏UIScrollView的滾動條(一樣適用於父類繼承自UIScrollView的控件,如UITableView,UICollectionView等)
scrollView.showsVerticalScrollIndicator = FALSE; scrollView.showsHorizontalScrollIndicator = FALSE;
19.關於segmentButton存在多個並排segment而展現不完的解決方法
1.將字體超過侷限的segment的Width進行調整便可
2.使用UICollectionView進行假裝
20.撤回登錄界面
present對應dismiss
push對應pop
例:
若是登錄是
UINavigationController * loginNavigationController = getViewController(@"login", @"Login"); [[[[UIApplication sharedApplication]keyWindow]rootViewController] presentViewController:loginNavigationController animated:YES completion:^{ XS_APP_DELEGATE.tabBarController = nil; }];
那麼取消登錄就是
[self.view endEditing:YES]; [[[[UIApplication sharedApplication]keyWindow]rootViewController] dismissViewControllerAnimated:YES completion:^{ }];
21.計算日期,昨日-今日-以及以後的幾天日期
self.dataArray = [[NSMutableArray alloc] init]; NSDate * date = [NSDate date]; NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"MM.dd"]; NSDate * yesterday = [NSDate dateWithTimeInterval:-24 * 60 * 60 sinceDate:date]; NSString * yesterdayString = [dateFormatter stringFromDate:yesterday]; [self.dataArray addObject:yesterdayString]; [self.dataArray addObject:@"今日"]; [self.dataArray addObject:@"明日"]; NSDate * after; for (int i = 2; i < 6; i ++) { after = [NSDate dateWithTimeInterval:i * 24 * 60 * 60 sinceDate:date]; NSString * afterString = [dateFormatter stringFromDate:after]; [self.dataArray addObject:afterString]; }
22.設置UIButton的UIFont
cancelButton.titleLabel.font = [UIFont fontWithName:@"HelveticaNeue-Bold" size:14];
23.@property和@interface聲明變量的區別
用@interface聲明的屬性,只能在這個父類中使用,是徹底私有的,用@property聲明的屬性外部是能夠訪問的,同時,用@property聲明的對象系統會給予一個get和set的方法屬性,這個是管理內存一個重要的方式 在oc裏面,也能夠說,用@property可使用self,能夠進行重寫的操做,而@interface不能夠
24.返回到指定viewController
NSArray * vcArray = self.navigationController.viewControllers; for (UIViewController * vc in vcArray) { if ([vc isKindOfClass:[XSConfiderSettingTableViewController class]]) { [self.navigationController popToViewController:vc animated:YES]; } }
也能夠:
[self.navigationController popToViewController:[vcArray objectAtIndex:index] animated:YES];
其中index能夠根據實際狀況而定,返回指定第幾個viewController
25.若是判斷不了arrray[n]是否存在,就判斷array.count > n
26.自定義section的文字顏色背景等
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { UIView * sectionView = [[UIView alloc] init]; sectionView.backgroundColor = [UIColor colorWithRed:242/255.0 green:243/255.0 blue:248/255.0 alpha:1.0]; UILabel * titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(16, 0, 190, 30)]; [titleLabel setFont:[UIFont systemFontOfSize:14]]; titleLabel.textColor = kColor; titleLabel.text = @"選擇開通的套餐服務"; [sectionView addSubview:titleLabel]; return sectionView; }
27.UISwitch的顏色樣式無需自定義重寫
直接在其ON Tint屬性中設置就好了,固然還有Thumb Tint屬性
28.畫遠離字體的UILabel邊框的取巧方法
在內容的兩側加上空格便可撐開邊框,如:
NSString * info = @"內容"; self.label = [NSString stringWithFormat:@" %@ ", info];
29.一個統一設置label邊框的方法(當該類存在多個UILabel控件須要畫上邊框時)
//統一設置label邊框 -(void)changeLabelBorder:(UILabel *)label borderColor:(UIColor *)color { label.layer.masksToBounds = YES; label.layer.cornerRadius = 7;//圓角 label.layer.borderColor = color.CGColor;//邊框顏色 label.layer.borderWidth = 0.5;//邊框寬度 label.textColor = color;//字體顏色 }
30.靜態UITableView的cell箭頭設置方法 在storyBoard中選中tableView選擇Accessory ->Disclosure Indicator