1. navigation controller 偏移問題
//在viewDidLoad中加入:
if ([self respondsToSelector:@selector(edgesForExtendedLayout)]){
self.edgesForExtendedLayout = UIRectEdgeNone;
}
2. 運(yùn)行時(shí)修改使用autolayout的view
NSLayoutConstraint *c = [NSLayoutConstraint constraintWithItem:view1
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem: view2
attribute: NSLayoutAttributeTop
multiplier:1
constant:2];
view1(的頂部) = view2(的頂部) * 1 + 2
3. 圖片拉伸
UIImageView *rightImagV = [[UIImageView alloc]init];
UIImage* img=[UIImage imageNamed:@"tu_text_Values"];//原圖
UIEdgeInsets edge=UIEdgeInsetsMake(5, myScalWidth(100), 5,myScalWidth(30));
//UIImageResizingModeStretch:拉伸模式嵌言,通過拉伸UIEdgeInsets指定的矩形區(qū)域來填充圖片
//UIImageResizingModeTile:平鋪模式弧哎,通過重復(fù)顯示UIEdgeInsets指定的矩形區(qū)域來填充圖
img= [img resizableImageWithCapInsets:edge resizingMode:UIImageResizingModeStretch];
rightImagV.image = img;
[rightImagV sizeToFit];
rightImagV.width = myScalWidth(73)+scoreL.width+myScalWidth(20);
rightImagV.x = SCREEN_WIDTH - myScalWidth(10)-rightImagV.width;
rightImagV.centerY = CGRectGetMidY(proV.frame);
[topView addSubview:rightImagV];
scoreL.x = myScalWidth(83);
scoreL.centerY = rightImagV.height*0.5;
[rightImagV addSubview:scoreL];
4. Bundle name : App的名字,用于顯示在手機(jī)頁面上logo下的文字柜某,中文最多顯示6個(gè)漢字
5. Bundle id : App的唯一標(biāo)識盐捷,用于區(qū)分不同App蹬挤,若兩個(gè)App的Bundle id一樣贯底,則后者會將前者覆蓋伴奥,其格式一般為com.companyName.xxx
6. Bundle version : App的版本號写烤,這個(gè)分為兩種,Bundle versions string, short:用于對外顯示的版本號(其一般格式為x.y.z)拾徙;Bundle version:用于內(nèi)部開發(fā)顯示的版本號(不對外洲炊,所以設(shè)置的形式比較隨意)
7. 處理器指令集
Architecture : 指你想支持的指令集。
Valid architectures : 指即將編譯的指令集尼啡。
Build Active Architecture Only : 指是否只編譯當(dāng)前適用的指令集暂衡。
1、armv6,支持的機(jī)器iPhone,iPhone3,iPhone3G及對應(yīng)的iTouch
2崖瞭、armv7,支持的機(jī)器iPhone4,iPhone4S
3古徒、armv7s,支持的機(jī)器iPhone5,iPhone5C
4、arm64/armv8读恃,支持的機(jī)器:iPhone5S及以上設(shè)備
8. pop右滑失效的問題
self.interactivePopGestureRecognizer.delegate = self;
// 實(shí)現(xiàn)代理方法
-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
// 判斷如果不是根控制器 才需要pop返回手勢
return self.childViewControllers.count > 1;
}
9.UITableView的plain樣式下隧膘,取消區(qū)頭停滯效果
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat sectionHeaderHeight = sectionHead.height;
if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView;.contentOffset.y>=0)
{
scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
}
else if(scrollView.contentOffset.y>=sectionHeaderHeight)
{
scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
}
}
10. 獲取某個(gè)view所在的控制器
- (UIViewController *)viewController
{
UIViewController *viewController = nil;
UIResponder *next = self.nextResponder;
while (next)
{
if ([next isKindOfClass:[UIViewController class]])
{
viewController = (UIViewController *)next;
break;
}
next = next.nextResponder;
}
return viewController;
}
11.兩種方法刪除NSUserDefaults所有記錄
//方法一
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
//方法二
- (void)resetDefaults
{
NSUserDefaults * defs = [NSUserDefaults standardUserDefaults];
NSDictionary * dict = [defs dictionaryRepresentation];
for (id key in dict)
{
[defs removeObjectForKey:key];
}
[defs synchronize];
}
12.打印系統(tǒng)所有已注冊的字體名稱
#pragma mark - 打印系統(tǒng)所有已注冊的字體名稱
void enumerateFonts()
{
for(NSString *familyName in [UIFont familyNames])
{
NSLog(@"%@",familyName);
NSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];
for(NSString *fontName in fontNames)
{
NSLog(@"\t|- %@",fontName);
}
}
}
13.判斷當(dāng)前ViewController是push還是present的方式顯示的
NSArray *viewcontrollers=self.navigationController.viewControllers;
if (viewcontrollers.count > 1)
{
if ([viewcontrollers objectAtIndex:viewcontrollers.count - 1] == self)
{
//push方式
[self.navigationController popViewControllerAnimated:YES];
}
}
else
{
//present方式
[self dismissViewControllerAnimated:YES completion:nil];
}
14.修改UITextField中Placeholder的文字顏色
[textField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];
15.關(guān)于NSDateFormatter的格式
G: 公元時(shí)代代态,例如AD公元
yy: 年的后2位
yyyy: 完整年
MM: 月,顯示為1-12
MMM: 月疹吃,顯示為英文月份簡寫,如 Jan
MMMM: 月蹦疑,顯示為英文月份全稱,如 Janualy
dd: 日萨驶,2位數(shù)表示歉摧,如02
d: 日,1-2位顯示腔呜,如 2
EEE: 簡寫星期幾叁温,如Sun
EEEE: 全寫星期幾,如Sunday
aa: 上下午核畴,AM/PM
H: 時(shí)膝但,24小時(shí)制,0-23
K:時(shí)谤草,12小時(shí)制跟束,0-11
m: 分,1-2位
mm: 分丑孩,2位
s: 秒冀宴,1-2位
ss: 秒,2位
S: 毫秒