1,隐藏状态栏问题,iOS6和iOS7
// This should be called whenever the return values for the view controller's status bar attributes have changed. If it is called from within an animation block, the changes will be animated along with the rest of the animation block.
- (void)setNeedsStatusBarAppearanceUpdate NS_AVAILABLE_IOS(7_0);
if([selfrespondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]){
shouldHidden =YES;
[selfprefersStatusBarHidden];
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
}else{
[UIApplicationsharedApplication].statusBarHidden =YES;
}
- (BOOL)prefersStatusBarHidden{
returnshouldHidden;
}
2,#define 判断设备版本
#define IsIOS7 ([[[UIDevice currentDevice] systemVersion] doubleValue] >=7.0 ? YES : NO)
#define IsIPhone5 (([[UIScreen mainScreen] bounds].size.height== 568) ? YES: NO)
3,针对iosnavigationBar的处理
[self.navigationBarsetTitleTextAttributes:[NSDictionarydictionaryWithObjectsAndKeys:[UIColorblackColor],UITextAttributeTextColor,[UIFontsystemFontOfSize:18],UITextAttributeFont,nil]];
if(!IsIOS7)
{
[self.navigationBarsetBackgroundImage:[UIImageimageNamed:@"navbg"]forBarMetrics:UIBarMetricsDefault];
[self.navigationBarsetBackgroundColor:White_Color];
}
4 定制导航的按钮
UIBarButtonItem* rightItem;
if(IsIOS7)
{
rightItem = [[UIBarButtonItemalloc]initWithTitle:@"完成"style:UIBarButtonItemStyleBorderedtarget:target action:action];
}
else
{
UIButton* btn = [UIButtonbuttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(0,0, 58, 44);
[btn setTitle:titleforState:UIControlStateNormal];
[btn setTitleColor:Blue_ColorforState:UIControlStateNormal];
[btn addTarget:targetaction:action forControlEvents:UIControlEventTouchUpInside];
rightItem = [[UIBarButtonItem alloc]initWithCustomView:btn];
}
5 UIButton的俩个不常用的方法。由于ios6和ios7导航自定义view的初始位置不同所以用了。
if(IsIOS7){
[btn setImageEdgeInsets:UIEdgeInsetsMake(0,20, 0, -20)];
}else{
[btn setImageEdgeInsets:UIEdgeInsetsMake(0,20, 0,0)];
}
if(IsIOS7){
[btn setTitleEdgeInsets:UIEdgeInsetsMake(0,0, 0, -10)];
}else{
[btn setTitleEdgeInsets:UIEdgeInsetsMake(0, -10,0, 0)];
}
6 可以得到字符串的长度
CGSize sizeToFit = [titlesizeWithFont:font constrainedToSize:CGSizeMake(100,CGFLOAT_MAX) lineBreakMode:0];
7 应用的三个周期
- (void)applicationWillResignActive:(UIApplication *)application
- (void)applicationDidEnterBackground:(UIApplication *)application
- (void)applicationWillEnterForeground:(UIApplication *)application
8 UIView Animation Options 的俩个属性,可以不影响用户的响应。显的比较流畅。不会出现突兀的状态
[UIViewanimateWithDuration:0.8delay:2 options:UIViewAnimationOptionCurveEaseInOutanimations:^{
} completion:^(BOOL finished) {
}];
UIViewAnimationOptionAllowUserInteraction =1 << 1, // turn on user interaction while animating
UIViewAnimationOptionBeginFromCurrentState
9 如果想要给CELL 填充背景图 要插入在最底层。
UIImageView* imv = [[UIImageViewalloc]initWithFrame:CGRectMake(0,0, 320,44)];
imv.image = [UIImageHelpergetCellBorderBottonBgImage];
[cell insertSubview:imvatIndex:0];
10 创建一个TabbarItem
UITabBarItem* item = [[UITabBarItemalloc]init];
[item setImageInsets:UIEdgeInsetsMake(5,0, -5,0)];
[item setFinishedSelectedImage:[UIImageimageNamed:selectedImage] withFinishedUnselectedImage:[UIImageimageNamed:unselectedImage]];
[item setImageInsets:UIEdgeInsetsMake(5,0, -5,0)];
item.tag = tag;
11 Tabbar的使用
vc1 = [[HomePageVCViewControlleralloc]init];
[selfaddChildViewController:vc1];
vc2 = [[PersonalCenterVCalloc]init];
[selfaddChildViewController:vc2];
vc3 = [[MoreVC alloc]init];
[selfaddChildViewController:vc3];
[self.view addSubview:vc1.view];
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
[selftransitionFromViewController:currentViewControllertoViewController:vc1duration:0.5options:UIViewAnimationOptionTransitionNoneanimations:^{} completion:^(BOOL finished) {
if(finished){
currentViewController =vc1;
self.title =@"首页";
self.navigationItem.rightBarButtonItem =nil;
}
}];
12 指定cell 在右侧出现一个 -> 标识
cell.accessoryType =UITableViewCellAccessoryDisclosureIndicator;
13 可以让Tableview滚到边框后不可以继续拖拽
self.tableView.bounces =NO;
14 heights for UIPickerView (162.0, 180.0 and 216.0)
15 TextView 和 TextField 点击Return 释放键盘
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if ([@"\n" isEqualToString:text] == YES) {
[textView resignFirstResponder];
return NO;
}
return YES;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
16 UIPickerView UIDatePicker 的创建
- (UIDatePicker*)getDatePicker
{
UIDatePicker* datepicker = [[UIDatePickeralloc]init];
datepicker.datePickerMode =UIDatePickerModeDateAndTime;
NSDate* date = [[NSDatealloc]initWithTimeIntervalSinceNow:0];
datepicker.minimumDate = date;
[datepicker addTarget:self action:@selector(dateChange:)forControlEvents:UIControlEventValueChanged];
return datepicker;
}
- (UIPickerView*)getPickerView
{
UIPickerView* picker = [[UIPickerViewalloc]init];
picker.delegate =self;
picker.dataSource =self;
picker.showsSelectionIndicator =YES;
return picker;
}