- 博客(48)
- 收藏
- 关注
原创 UISearchController
注意一定要将searchController设置为成员属性,不然会达不到想要的结果 要掌握searchController 建议查询苹果的官方文档@interface LRMessageTableViewController ()<UISearchResultsUpdating,UISearchBarDelegate>@property(nonatomic,strong)UISearchCont
2015-10-13 10:06:44
570
原创 UIApplication,AppDelegate,程序启动流程
UIApplication的简介UIApplication对象是应用程序的象征每一个应用都有自己的UIApplication对象,而且是单例的通过[UIApplication sharedApplication]可以获得这个单例对象一个iOS程序启动后创建的第一个对象就是UIApplication对象利用UIApplication对象,能进行一些应用级别的操作UIApplication的
2015-10-11 15:19:56
1473
原创 数据持久化的方法
属性列表属性列表是一种XML格式的文件,拓展名为plist 如果对象是NSString、NSDictionary、NSArray、NSData、NSNumber等类型,就可以使用writeToFile:atomically:方法直接将对象写到属性列表文件中 读取方法ContentsOfFile偏好设置 NSUserDefaults一定要设置数据的持久化[defaults synchornize]
2015-10-11 10:48:47
490
原创 沙盒
沙盒目录Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录Library/Caches:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备
2015-10-11 10:41:35
419
原创 UIStoryboardSegue
在storyboard中设置segue的identifier基本属性//标示便于在storyboard中找到@property (nullable, nonatomic, copy, readonly) NSString *identifier;//源控制器@property (nonatomic, readonly) __kindof UIViewController *sourceView
2015-10-11 10:17:55
452
原创 控制器的生命周期方法题及内存警告时的处理
1.图解2.方法解释- (void)loadView{ //一定调用父类的方法 [super loadView]; //在这里实例化self.view //一般不重写这个方法 SHOW_FUNC;}- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup afte
2015-10-09 16:14:48
382
原创 导航控制器UINavigationController
1.导航控制器属于栈结构 本身不显示内容 需要一个主视图控制器来显示内容 UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:fvc];2.UINavigationController以栈的形式保存子控制器@property(nonatomic,copy) NSArray
2015-10-09 16:02:01
344
原创 如何加载控制器View
控制器View的创建 注意:控制器的view加载完毕就会调用viewDidLoad方法 1.看看控制器有没有实现loadView方法 2.看看控制器是如何创建的 可以通过storyboard xib 两种方法 3.控制器创建的时候只是通过alloc init创建的 那么程序就先加载和控制器同名的Xib 如何这个Xib没有 那么就加载和控制器去掉Controller同名的Xib 如何这些都
2015-10-09 15:26:26
464
原创 在iOS中如何创建一个控制器
1.直接创建 LROneViewController *one = [[LROneViewController alloc] init];2.通过storyboard创建通过instantiateInitialViewController获得 1.创建一个 storyboard 并将控制器拖入storyboard中,在storyboard的设置中将instantiateInitialViewC
2015-10-07 17:29:20
395
原创 iOS中常见的项目文件
Info.plistLocaliztion native development region 本地化相关Bundle display name 程序安装后显示的名称,限制在10-12个字符,如果超出,将被显示缩写名称Icon file app图标名称Bundle version 应用程序的版本号,每次往App Store上发布一个新版本时,需要增加这个版本号Main storyboard
2015-10-07 11:42:45
373
原创 UIPickerView和UIDatePicker
1.UIPickerView的常见属性 // 数据源(用来告诉UIPickerView有多少列多少行) @property(nonatomic,assign) id dataSource; // 代理(用来告诉UIPickerView每1列的每1行显示什么内容,监听UIPickerView的选择) @property(nonatomic,assign) id delegate; //
2015-10-05 20:52:12
375
原创 自定义UITableView每组头部控件
1.创建一个继承UITableViewHeaderFooterView的类,拥有一个模型2.重写initWithStyle:reuseIdentifier:方法 添加所有需要显示的子控件(不需要设置子控件的数据和frame, 子控件要添加到contentView中) 进行子控件一次性的属性设置(有些属性只需要设置一次, 比如字体\固定的图片)- (instancetype)initWith
2015-10-05 12:34:55
3457
原创 UITableViewCell
tableViewCell的简介UITableView的每一行都是一个UITableViewCell,通过dataSource的tableView:cellForRowAtIndexPath:方法来初始化每一行辅助指示视图的作用是显示一个表示动作的图标可以通过设置UITableViewCell的accessoryType来显示,默认是UITableViewCellAccessoryNone(不显
2015-10-04 22:08:47
487
原创 通过代码自定义cell(cell的高度不一致)
1.新建一个继承自UITableViewCell的类2.重写initWithStyle:reuseIdentifier:方法 添加所有需要显示的子控件(不需要设置子控件的数据和frame, 子控件要添加到contentView中) 进行子控件一次性的属性设置(有些属性只需要设置一次, 比如字体\固定的图片)3.提供2个模型 数据模型: 存放文字数据\图片数据 frame模型: 存放数据模型
2015-10-04 21:49:49
390
原创 如何在使用storyboard中使用tableViewController中的Prototype Cells 自定义cell
特别提醒在cell的循环使用中,我们一定做到以下两点 1.将cell的数据覆盖掉 2.将cell的状态覆盖掉1.选中Prototype Cells做一下操作1.在设置属性一栏将style设置为custom 2.设置identifier便于以后cell创建和循环使用 3.将cell需要展示的控件拖到Prototype Cells中 2.创建一个继承UITableViewCell的类用来管理Pr
2015-10-04 21:20:50
4844
原创 表的编辑
1.单元的删除和添加执行的步骤(以下方法都是tableView的数据源和代理方法)1.将表格变成可编辑状态self.tableView.editing = YES;2.设置指定单元能否被编辑,这一步不设置默认都能被编辑- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
2015-10-04 20:52:04
394
原创 UITableView常用属性和一些小知识点
tableView的样式1.分段显示UITableViewStylePlain 分段显示,当滑动tableView的时候每组的头部会顶在最上方知道该组所有内容消失换成下一组 2.分组显示 UITableViewStyleGrouped tableView显示每组头部和尾部的文字通过以下两个方法设置,同样tableView的样式不同显示就不同,如上图所示- (NSString *)tableV
2015-10-04 10:41:57
451
原创 tableView的显示步骤
#tableView在创建的时候会调用里面的方法,具体调用步骤如下1.有多少组-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView2.第section组头部控件有多高-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSecti
2015-10-04 10:12:42
508
原创 UITableViewDelegate方法
UITableView代理方法更多的集中到对tableView的操作中 1.选中某行cell调用此方法- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath2.自定义每组头部的view 需要使用到UITableViewHeaderFooterView- (UIView *
2015-10-03 20:36:04
1587
原创 文本框 UITextView
UITextView基本属性 UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(100, 100, 200, 300)]; [self.view addSubview:textView]; //UITextView是UIScrollView的子类,滚动视图如果检测到当前视图控制器在导航上,会自动留出导
2015-09-28 20:01:10
466
原创 automaticallyAdjustsScrollViewInsets
iOS 7 viewcontroller新增属性automaticallyAdjustsScrollViewInsets,即是否根据按所在界面的navigationbar与tabbar的高度,自动调整scrollview的 inset 默认是YES 设置为NO 不自动调整scrollView的inset就拿UITextView举例 UITextView继承与scrollView 设置为NO时UI
2015-09-28 17:45:09
1974
原创 进度条 UIProgressView
@interface LRUIProgressViewViewController ()@end@implementation LRUIProgressViewViewController{ UIProgressView *_pv; NSTimer *_timer;}- (void)viewDidLoad { [super viewDidLoad]; [self c
2015-09-28 13:16:50
460
原创 选择控件 UISegmentedController
NSArray *items = @[@"选择",[[UIImage imageNamed:@"001"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal],@"插入"]; UISegmentedControl *segment = [[UISegmentedControl alloc] initWithItems:items
2015-09-28 11:29:54
731
原创 UIStepper 计步器
UIStepper *stepper = [[UIStepper alloc] initWithFrame:CGRectMake(100, 100, 0, 0)]; self.stepper = stepper; //设置宽高没有用 [self.view addSubview:stepper]; //1.设置最大值 最小值 当前值 stepper.maximum
2015-09-28 10:38:56
405
原创 活动指示器 UIActivityIndicatorView
活动指示器的创建@interface LRUIActivityIndicatorViewViewController ()/**活动指示器*/@property(nonatomic,weak)UIActivityIndicatorView *aiv;//活动指示器一般作为成员变量 或者全局变量 供多个函数或界面使用@end/**活动指示器*/@implementation LRUIActivi
2015-09-28 09:49:32
701
原创 UIActionSheet 操作表
操作表的创建 UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"分享" delegate:nil cancelButtonTitle:@"取消" destructiveButtonTitle:@"警告按钮" otherButtonTitles:@"动作1",@"动作2", nil]; sheet.actionSheet
2015-09-28 08:50:12
544
原创 UIAlertView 警告框
警告框需要注意的问题深色的按钮通常必须是无害按钮(如取消按钮等)iPhone开发文档是不推荐拥有3个以上(包括3个)按钮的警告框的,如果确实需要那么多选择支,可考虑使用操作表(Action Sheet)控件详情见代码创建警告框1.第一种方法创建 //创建警告栏 设置警告栏的代理对象为self 单个按钮 UIAlertView *alertView = [[UIAlertView al
2015-09-27 20:27:33
645
原创 UISlider滑块
滑块的基本属性滑块要设置宽高,高度过小,不能进行滑动minimumValue 最小值 maximumValue最大值 一般设置为0和1value滑块当前的值minimumValueImage 最小值的图片 maximumValueImage最大值的图片thumbTintColor 设置滑块的颜色tintColor设置滑块的镂空颜色 即滑块滑动过后的颜色滑块的一些方法滑块变化时的响应
2015-09-27 16:13:55
532
原创 UISwitch
switch有一个属性on 是一个bool类型 表示当前开关的状态 YES为开NO为关UISwitch 只能响应UIControlEventValueChanged事件定制UISwitch 设置镂空颜色 这个设置之后可以看到switch 周围变成黄色 sw.tintColor = [UIColor yellowColor];设置滑块颜色 sw.thumbTintColor = [UICo
2015-09-24 19:16:05
342
原创 如何使用xib自定义UITableViewCell
如何使用xib自定义UITableViewCellxib文件的创建和添加控件创建一个xib文件 xib中拖入一个tableViewCell 在将需要添加的控件拖入到cell中 创建一个继承于UITableViewCell的类,该类用来管理Xib cell中的控件 并且在.m文件中添加以下代码 用来和Xib cell中的空间进行托线将xib的class改为我们创建的类 2.将xib cell 中的
2015-09-24 13:59:38
3302
原创 在UIButton中如何将imageView和titleView居中且上下分布
在UIButton中如何将imageView和titleView居中且上下分布1.首先我们向button中添加图片设置文字//创建一个button UIButton *btn = [[UIButton alloc] init]; [self.view addSubview:btn]; btn.frame = CGRectMake(100, 200, 90, 90); b
2015-09-20 13:57:25
7666
原创 根据文字内容和设定maxSize计算文字的width、height
根据文字内容和设定maxSize计算文字的width、height1.调用的方法(CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext
2015-09-19 21:45:49
815
原创 代理设计模式
1.Delegate的使用场合对象A内部发生了一些事情,想通知对象B对象B想监听对象A内部发生了什么事情对象A想在自己的方法内部调用对象B的某个方法,并且对象A不能对对象B有耦合依赖对象A想传递数据给对象B……以上情况,结果都一样:对象B是对象A的代理(delegate)2.使用delegate的步骤1.先搞清楚谁是谁的代理(de
2015-07-06 00:45:42
346
原创 NSBundle 的常用方法
1.取出问价的路径NSString *path = [[NSBundlemainBundle] pathForResource:@"tgs.plist"ofType:nil];
2015-07-05 11:20:55
349
原创 hdu 1702 暴力
#include #include char flag[5],s[5];int main (){ int n,m,a[1000],t; int count1,count2; scanf("%d",&n); while (n--) { memset(flag,'\0',sizeof(flag));
2013-07-31 16:03:48
542
原创 hdu 1237简单计算器
#include #include #include using namespace std;int main (){ stack s1; stack s2; char a [210],c,ch; int i; double b,d,m; while (gets(a)&&strcmp(a,"0")) {
2013-07-31 15:00:37
465
原创 poj 1012 约瑟夫
http://poj.org/problem?id=1012#include #include int main (){ int a[30],i,j,n,b[15],min,m; for(i=1;i<=13;i++) { n=2*i;min=i+1; memset(a,0,sizeof(a));
2013-07-30 15:23:44
519
原创 NYOJ 150 栈
#include #include int main (){ char a[15],b[15]; int n,i,stack[15]; int flag [30],k,j,top; while (~scanf("%d%s%s",&n,a,b)) { k=top=j=0; for(i=0;i<n;i++)
2013-07-30 10:22:32
525
原创 hdu4414 字符串 模拟
#include#include#include#define M 55using namespace std;char map [M][M];int find (int x,int y){ int a,b,c,d,i; a=b=c=d=0; for(i=1;map[x-i][y]=='#';i++) { if
2013-07-30 10:16:16
588
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人