1:两种方法删除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];
}

2:设置全局navigation barbuttonitem

#pragma mark 设置全局navigation barbuttonitem
-(void)setNaviBarButtonItemImage:(NSString *)imageName andX:(NSInteger)x andY:(NSInteger)y andW:(NSInteger)w andH:(NSInteger)h andTitle:(NSString *)title andSel:(SEL)sel andLOrR:(NSString *)lOr andTitleColor:(UIColor *)color{ UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame =CGRectMake(x,y,w,h); [btn setTitle:title forState:UIControlStateNormal]; if (imageName.length== && title.length==) { } else if (imageName.length== && title.length!=) {
[btn setBackgroundColor:[UIColor clearColor]];
[btn setTitleColor:color forState:UIControlStateNormal];
}else if(imageName.length!= && title.length==){
UIImage *image = [UIImage imageNamed:imageName];
[btn setImage:image forState:UIControlStateNormal];
}else if(imageName.length!= && title.length!=){
UIImage *image = [UIImage imageNamed:imageName];
[btn setBackgroundImage:image forState:UIControlStateNormal];
[btn setBackgroundColor:[UIColor clearColor]];
[btn setTitleColor:color forState:UIControlStateNormal];
} [btn addTarget: self action:sel forControlEvents: UIControlEventTouchUpInside];
UIBarButtonItem *bBtn = [[UIBarButtonItem alloc]initWithCustomView:btn]; if ([lOr isEqualToString:@"left"]) {
[self.navigationItem setLeftBarButtonItem:bBtn];
}else{
[self.navigationItem setRightBarButtonItem:bBtn];
}
}

3:UITableView设置Section间距

在使用IOS的UITableView时,时常会用到它的UITableViewStyleGrouped分组多section属性。而默认的情况下使用该属性后section之间的间距会比较大,看着很不舒服。那么可以通过以下的代理方法配置UITableView各个section的间距。

原理其实很简单,显示效果的各个section间距其实是section头部和底部的组合。配置他们的间距就是配置各个section的头部和底部

//section头部间距
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return ;//section头部高度
}
//section头部视图
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *view=[[UIView alloc] initWithFrame:CGRectMake(, , , )];
view.backgroundColor = [UIColor clearColor];
return [view autorelease];
}
//section底部间距
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return ;
}
//section底部视图
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
UIView *view=[[UIView alloc] initWithFrame:CGRectMake(, , , )];
view.backgroundColor = [UIColor clearColor];
return [view autorelease];
}

4:解决OBJC_CLASS_$_MBProgressHUD无法引用的问题

虽然用POD把相关文件已经更新下来,但它却没有引入到工程中,要手动对它进行引用(或者直接放弃pod管理此插件,直接引入工程项目源代码中)

Undefined symbols for architecture i386:

  "_OBJC_CLASS_$_MBProgressHUD", referenced from:

      objc-class-ref in ViewController.o

ld: symbol(s) not found for architecture i386

clang: error: linker command failed with exit code  (use -v to see invocation)

这里的错误是因为你的在building phases中没有引用相关的头文件,因此,只需要在building phase中添加对应的.m文件就可以了。

5:iOS7 下使用SVPullToRefresh 下拉刷新导航栏位置错误

iOS7 下使用SVPullToRefresh 下拉刷新导航栏位置错误;下拉刷新之后,tableview的第一列会跑到导航栏的下面;修正:添加如下代码

/**

 *  下拉刷新 增加一个;

 */

//修复下拉刷新位置错误 代码开始

if ([self respondsToSelector:@selector(automaticallyAdjustsScrollViewInsets)]) {

    self.automaticallyAdjustsScrollViewInsets = NO;

    UIEdgeInsets insets = self.tableView.contentInset;

    insets.top = self.navigationController.navigationBar.bounds.size.height +

    [UIApplication sharedApplication].statusBarFrame.size.height;

    self.tableView.contentInset = insets;

    self.tableView.scrollIndicatorInsets = insets;

}

//修复下拉刷新位置错误  代码结束

__block RootViewController *bSelf = self;

[self.tableView addPullToRefreshWithActionHandler:^{

    [bSelf addRows];

}];

/**

 *  拉到最后 加载更多,增加一个;

 */

[self.tableView addInfiniteScrollingWithActionHandler:^{

    [bSelf addMoreRow];

}];

6:当改动布局要更新效果时

CGRect headFrame=self.headerView.frame;
headFrame.size.height=;
self.headerView.frame = headFrame;
[self.headerView setNeedsLayout];
[self.headerView layoutIfNeeded];

7:给UITextField增加一个右边内的图片按键(rightView)

UIButton *addCommentBtn=[[UIButton alloc]initWithFrame:CGRectMake(, , ,inputTextViewHeight)];
[addCommentBtn setImage:[UIImage imageNamed:@"textViewEditNormal"] forState:UIControlStateNormal];
[addCommentBtn addTarget:self action:@selector(addCommentAction) forControlEvents:UIControlEventTouchUpInside];
_inputTextView.rightView=addCommentBtn;
_inputTextView.rightViewMode=UITextFieldViewModeAlways;

8:NSLog 输出格式集合

• %@     对象
• %d, %i    整数
• %u      无符整形
• %f       浮点/双字
• %x, %X   二进制整数
• %o      八进制整数
• %zu     size_t
• %p      指针
• %e      浮点/双字 (科学计算)
• %g      浮点/双字
• %s       C 字符串
• %.*s      Pascal字符串
• %c       字符
• %C       unichar
• %lld      64位长整数(long long)
• %llu      无符64位长整数
%Lf       64位双字

9:设置UIImage的渲染模式:UIImage.renderingMode

设置UIImage的渲染模式:UIImage.renderingMode
着色(Tint Color)是iOS7界面中的一个.设置UIImage的渲染模式:UIImage.renderingMode重大改变,你可以设置一个UIImage在渲染时是否使用当前视图的Tint Color。UIImage新增了一个只读属性:renderingMode,对应的还有一个新增方法:imageWithRenderingMode:,它使用UIImageRenderingMode枚举值来设置图片的renderingMode属性。该枚举中包含下列值:
UIImageRenderingModeAutomatic  // 根据图片的使用环境和所处的绘图上下文自动调整渲染模式。  
UIImageRenderingModeAlwaysOriginal   // 始终绘制图片原始状态,不使用Tint Color。  
UIImageRenderingModeAlwaysTemplate   // 始终根据Tint Color绘制图片,忽略图片的颜色信息。  
renderingMode属性的默认值是UIImageRenderingModeAutomatic,即UIImage是否使用Tint Color取决于它显示的位置。
UIImage *img = [UIImage imageNamed:@ "myimage" ];  img = [img imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; 
使用场景(Toolbar中增加item,item使用背景图,会出现色调为蓝色,如果要为图片原来的色调,则要修改图片的渲染,因为目前是渲染成文字的色调):
@property (weak, nonatomic) IBOutlet UIBarButtonItem *mycollectionItem; UIImage *collectionItemImage=[UIImage imageNamed:@"bottomCollectionNormal"];
collectionItemImage=[collectionItemImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.mycollectionItem.image=collectionItemImage;

10:navigationController当前页隐藏后跳转回去页同样被隐藏

当前页隐藏代码:
[self.navigationController setNavigationBarHidden:YES];
跳转时:
[self.navigationController setNavigationBarHidden:NO];
[self.navigationController popViewControllerAnimated:YES];

IOS开发基础知识--碎片9的更多相关文章

  1. IOS开发基础知识碎片-导航

    1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...

  2. IOS开发基础知识--碎片33

    1:AFNetworking状态栏网络请求效果 直接在AppDelegate里面didFinishLaunchingWithOptions进行设置 [[AFNetworkActivityIndicat ...

  3. IOS开发基础知识--碎片42

    1:报thread 1:exc_bad_access(code=1,address=0x70********) 闪退 这种错误通常是内存管理的问题,一般是访问了已经释放的对象导致的,可以开启僵尸对象( ...

  4. IOS开发基础知识--碎片50

      1:Masonry 2个或2个以上的控件等间隔排序 /** * 多个控件固定间隔的等间隔排列,变化的是控件的长度或者宽度值 * * @param axisType 轴线方向 * @param fi ...

  5. IOS开发基础知识--碎片3

    十二:判断设备 //设备名称 return [UIDevice currentDevice].name; //设备型号,只可得到是何设备,无法得到是第几代设备 return [UIDevice cur ...

  6. IOS开发基础知识--碎片11

    1:AFNetwork判断网络状态 #import “AFNetworkActivityIndicatorManager.h" - (BOOL)application:(UIApplicat ...

  7. IOS开发基础知识--碎片14

    1:ZIP文件压缩跟解压,使用ZipArchive 创建/添加一个zip包 ZipArchive* zipFile = [[ZipArchive alloc] init]; //次数得zipfilen ...

  8. IOS开发基础知识--碎片16

    1:Objective-C语法之动态类型(isKindOfClass, isMemberOfClass,id) 对象在运行时获取其类型的能力称为内省.内省可以有多种方法实现. 判断对象类型 -(BOO ...

  9. IOS开发基础知识--碎片19

    1:键盘事件顺序 UIKeyboardWillShowNotification // 键盘显示之前 UIKeyboardDidShowNotification // 键盘显示完成后 UIKeyboar ...

  10. IOS开发基础知识--碎片40

    1:Masonry快速查看报错小技巧 self.statusLabel = [UILabel new]; [self.contentView addSubview:self.statusLabel]; ...

随机推荐

  1. Android之登录那点事

    随着互联网的高速发展,一个应用为了保护用户的隐私,通常会通过设置用户名+密码的验证方式保证用户隐私的相对安全,我知道一般网站的登录验证,通常会设置一个二维码,通过验证二维码,防止恶意软件通过机械程序, ...

  2. 【开源】OSharp框架解说系列(6.1):日志系统设计

    OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...

  3. C# 如何将List拆分成多个子集合

    网上的例子: 问:List<string> list = new List<string>();        for (int i = 1; i < 95; i++)  ...

  4. iOS开发之遍历Model类的属性并完善使用Runtime给Model类赋值

    在上篇博客<iOS开发之使用Runtime给Model类赋值>中介绍了如何使用运行时在实体类的基类中添加给实体类的属性赋值的方法,这个方法的前提是字典的Key必须和实体类的Property ...

  5. C语言 编程练习22题

    一.题目 1.编一个程序,输入x的值,按下列公式计算并输出y值: 2.已知数A与B,由键盘输入AB的值,交换它们的值,并输出. 3.给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位 ...

  6. 附录B 安装MySql数据库

    B.1  卸载旧的MaySql程序 第一步   查找以前是否安装有mysql 使用命令查看是否已经安装过mysql: #rpm -qa | grep -i mysql 如果没有结果,则可以进行mysq ...

  7. 【SQLServer】DBHelper即C#数据库底层封装

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.C ...

  8. Cesium应用篇:3控件(5)CesiumInspector

    CesiumInspector控件并不是带来太多功能上的,但对开发人员来说,对于了解Cesium的渲染效果以及性能调优,还是一个很有价值的控件,特别是一些渲染状态下的问题,采用该控件,应该还是会有很多 ...

  9. using语法糖详解 2015-01-06 17:45 50人阅读 评论(0) 收藏

    前段事件在using外套try catch 突然想到,如果出现异常 会不会执行释放,不执行的话那服务器很可能导致崩溃... 特意上了CSDN问了大神..得到了答案.. Using相等于try catc ...

  10. 为你带来灵感的 20 个 HTML5/CSS3 模板

    1. Curve 2. Tapestry 3. Aqueous 4. Deliccio 5. Respond 1.5 6. Triangle Responsive 7. Design Company ...