1、UIImageview设边框、圆角
需要引QuartzCore/QuartzCore.h>
//设UIImageView边框 CALayer *layer = [m_imgView layer]; [layer setMasksToBounds:YES]; layer.cornerRadius = 10.0;//设圆角 [layer setBorderWidth:1]; [layer setBorderColor:[[UIColor blackColor] CGColor]];
2、bounds属性和frame属性区别
frame指的是:该view在父view坐标系统中的位置和大小.
bounds指的是:该view在本身坐标系统中的位置和大小.
3、导航navigationController设置按钮背景图片
UIImage *backImage = [UIImage imageNamed:@"ip_bt-back.png"]; UIButton *backBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, backImage.size.width, backImage.size.height)]; [backBtn addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside]; [backBtn setBackgroundImage:backImage forState:UIControlStateNormal]; UIBarButtonItem *leftBtn = [[UIBarButtonItem alloc] initWithCustomView:backBtn]; self.navigationItem.leftBarButtonItem = leftBtn;
4、ios5加载自定义单元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"priceRecordCell"; //加载nib static BOOL nibsRegistered = NO; if (!nibsRegistered) { UINib *nib = [UINib nibWithNibName:@"PriceRecordCell" bundle:nil]; [tableView registerNib:nib forCellReuseIdentifier:CellIdentifier]; nibsRegistered = YES; } PriceRecordCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[PriceRecordCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } // Configure the cell... cell.nickName.text = @"爱我中华"; cell.priceLab.text = @"价格 ¥100.00"; cell.lastTimeLab.text = @"2012-10-15 18:00:08"; return cell; }
5、tableview单元格分割线设置
//不需要分割线
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
6、ios4工程在ios5上运行会出现ARC问题,在Compile Sources 下的Compiler Flags属性中添加-fno-objc-arc,可解决该问题 。
7、UIImageView 上添加点击事件
UIImageView *imageView =[[UIImageView alloc ]initWithFrame :CGRectMake (100 , 100 , 200 , 200 )]; imageView. image =[ UIImage imageNamed : @"test.png"]; //事件可用设置 imageView. userInteractionEnabled = YES ; UITapGestureRecognizer *tap = [[ UITapGestureRecognizer alloc ] initWithTarget : self action : @selector (clickImage)]; [imageView addGestureRecognizer :tap];
8、ios5 UIView 设圆角
需添加#import <QuartzCore/QuartzCore.h>
centerView.layer.cornerRadius = 6.0f;
9、获取文件路径
//获取沙盒路径 NSString *sandboxPath = NSHomeDirectory(); NSLog(@"sandboxPath :%@",sandboxPath); NSString *documentPath = [sandboxPath stringByAppendingPathComponent:@"Documents"]; NSLog(@"documentPath : %@",documentPath); //获取沙盒中的文件目录 NSArray *documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //遍历得到的路径 for (int i=0; i<[documentDirectories count]; i++) { NSLog(@"%@",[documentDirectories objectAtIndex:i]); }
10、自定义单元格中,如果自定义单元格中有按钮点击事件,不可设置以下属性,会阻塞按钮事件解发。 (2012-10-16)
cell_1.userInteractionEnabled = NO;//单元格不可点击
11、内存过低警告,清除内存
通过消息通知方式提示并清除
- (id)init{ //当内存过低时,清空内存 NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; [nc addObserver:self selector:@selector(clearCache) name:UIApplicationDidReceiveMemoryWarningNotification object:nil]; }
12、NSBundle可以获取当前程序的资源,得到它,可以获取当前资源中的相关文件,并进行操作。
//NSBundle获取当前应用资源 NSBundle *appBundle = [NSBundle mainBundle]; //bundle得到文件 NSString *path = [appBundle pathForResource:@"first" ofType:@"png"]; if (path != nil) { NSLog(@"path : %@",path); } //bundle得到类 Class class = [appBundle classNamed:@"Test"]; Test *tinstance = [[class alloc] init]; [tinstance test]; //bundle加载xib [appBundle loadNibNamed:@"ThirdViewController" owner:self options:nil]; //bundle中还有很多其它方法,可查api
13、应用状态、状态切换,通过它可了解应用在运行时的各个状态。
常见应用中多种状态:末运行--激活--末激活--后台运行--暂停--激活
//启动应用时调用 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //...... NSLog(@"====didFinishLaunchingWithOptions.........%@",NSStringFromSelector(_cmd)); return YES; } //按下主窗口按钮时调用(末激活) - (void)applicationWillResignActive:(UIApplication *)application { NSLog(@"====applicationWillResignActive"); } //按下主窗口按钮时调用(后台运行,末激活,5秒后进入暂停) - (void)applicationDidEnterBackground:(UIApplication *)application { //进行入后运行时,该方法是保存数据的最佳方法 //[object saveChanges]; NSLog(@"====applicationDidEnterBackground"); } //按主窗口按钮退出后,再按下应用图标时调用(激活) - (void)applicationWillEnterForeground:(UIApplication *)application { NSLog(@"====applicationWillEnterForeground"); } //按主窗口按钮退出后,再按下应用图标时调用(激活) - (void)applicationDidBecomeActive:(UIApplication *)application { NSLog(@"====applicationDidBecomeActive"); } //ios4之前实现该方法,在该方法保存数据最佳 - (void)applicationWillTerminate:(UIApplication *)application { NSLog(@"====applicationWillTerminate"); }
14、沙盒理解
每个ios应用都有自己的应用沙盒(application sandbox),应用沙盒就是文件系统目录,但与文件系统其他部分隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒。
15、navigation导航
//设置Navigation Bar背景 UIImage *title_bg = [UIImage imageNamed:@"ip_titelbar.png"]; [self.navigationController.navigationBar setBackgroundImage:title_bg forBarMetrics:UIBarMetricsDefault]; UIView *_view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 360, 40)]; UILabel *titleLab = [[UILabel alloc] initWithFrame:CGRectMake(120, 0, 100, 20)]; titleLab.text = @"快速竞拍"; titleLab.textColor = [UIColor redColor]; titleLab.font = [UIFont fontWithName:@"Arial" size:18]; titleLab.backgroundColor = [UIColor clearColor]; [_view addSubview:titleLab]; resultLab = [[UILabel alloc] initWithFrame:CGRectMake(122, 20, 100, 20)]; resultLab.backgroundColor = [UIColor clearColor]; resultLab.font = [UIFont fontWithName:@"Arial" size:14]; [_view addSubview:resultLab]; //刷新按钮 UIButton *refreshBtn = [[UIButton alloc] initWithFrame:CGRectMake(255, 8, 50, 30)]; [refreshBtn setBackgroundImage:[UIImage imageNamed:@"ip_bt_shuaxin.png"] forState:UIControlStateNormal]; [refreshBtn addTarget:self action:@selector(refurbish) forControlEvents:UIControlEventTouchUpInside]; [_view addSubview:refreshBtn]; self.navigationItem.titleView = _view; //显示导航 // self.navigationController.navigationBarHidden = NO;
16、ipad中UITabBarController添加ViewController。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil]; UINavigationController *masterNavigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController]; DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]; UINavigationController *detailNavigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController]; masterViewController.detailViewController = detailViewController; self.splitViewController = [[UISplitViewController alloc] init]; self.splitViewController.delegate = detailViewController; self.splitViewController.viewControllers = [NSArray arrayWithObjects:masterNavigationController, detailNavigationController, nil]; //首页barTab UITabBarController *tabBarController = [[UITabBarController alloc] init]; self.splitViewController.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"首页" image:[UIImage imageNamed:@"f.jpg"] tag:0]; //购物车barTab CartViewController *cartVC = [[CartViewController alloc] initWithNibName:@"CartViewController" bundle:nil]; cartVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"购物车" image:[UIImage imageNamed:@"f.jpg"] tag:0]; //条码购barTab BarCodeViewController *barcodeVC = [[BarCodeViewController alloc] initWithNibName:@"BarCodeViewController" bundle:nil]; barcodeVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"条码购" image:[UIImage imageNamed:@"f.jpg"] tag:0]; //更多barTab MoreViewController *moreVC = [[MoreViewController alloc] initWithNibName:@"MoreViewController" bundle:nil]; moreVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"更多" image:[UIImage imageNamed:@"f.jpg"] tag:0]; //controller数组 NSArray *controllers = [NSArray arrayWithObjects:self.splitViewController,cartVC,barcodeVC,moreVC, nil]; tabBarController.viewControllers = controllers; self.window.rootViewController = tabBarController; // self.window.rootViewController = self.splitViewController; [self.window makeKeyAndVisible]; return YES; }
17、如何获取应用存放文件根路径:
//根路径 NSString *homePath = [[NSBundle mainBundle] executablePath]; NSArray *strings = [homePath componentsSeparatedByString: @"/"]; NSString *executableName = [strings objectAtIndex:[strings count]-1]; NSString *baseDirectory = [homePath substringToIndex: [homePath length]-[executableName length]-1]; NSString *fileName = [NSString stringWithFormat:@"%@/test.txt",baseDirectory]; NSLog(@"filePath: %@",fileName);
18、block类似匿名函数
以为例子:
static int outA = 8; static NSString *c=@""; int(^myPtr)(int,NSString *)=^(int a,NSString *b){ c=b; return outA+a; }; outA = 5;//改变outA int result = myPtr(2,@"test");//结果为10,outA是复制的,后面改变outA无效 NSLog(@"result : %i",result);
19、performSelector的应用,它可直接调用实例的方法,能延迟执行方法时间。
- (void) test:(NSString *) str; - (void) test:(NSString *) str{ NSLog(@"you input is : %@",str); } //调用方法 [self performSelector:@selector(test:) withObject:@"dwen"]; [self performSelector:@selector(test:) withObject:@"wen" afterDelay:2.0f];//两秒后执行
20、UIButton中addTarget中传参问题,该事件可以通过setTag方法进行传整数。
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, width, height)]; //action参数中写入事件执行方法 [button addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside]; //在button的tag中添加你需要传递的参数 [button setTag:100]; //action方法 -(void)action:(id)sender{ int i = [sender tag]; }
21、沙盒中包含三个文件夹,Documents 、Library和tmp
//获取Documents目录 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES); NSString *documentDirectory = [paths objectAtIndex:0]; NSLog(@"%@",documentDirectory); //获取当前应用中文件路径 NSString *filename = [documentDirectory stringByAppendingPathComponent:@"w12122.jpg"]; NSLog(@"%@",filename); //获取tmp目录 NSString *tempPath = NSTemporaryDirectory(); NSString *tempFile = [tempPath stringByAppendingPathComponent:@"w12122.jpg"]; NSLog(@"tempFile :%@",tempFile);
22、NSString截取字符串
NSString *str = @"B12121.jpg";
NSRange range = [str rangeOfString:@"."];
NSLog(@"%i",range.location);
NSLog(@"%@",[str substringToIndex:range.location]);
23、UINavigationBar
//创建导航栏集合 UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:nil]; //创建一个左边按钮 UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStyleBordered target:self action:@selector(back)]; //设置导航栏内容 [navigationItem setTitle:@"拍品列表"]; //把导航栏集合添加入导航栏中,设置动画关闭 [navigationBar pushNavigationItem:navigationItem animated:NO]; //把左右两个按钮添加入导航栏集合中 [navigationItem setLeftBarButtonItem:leftButton];
24、在navigationController中添加右边多个按钮。效果图:
代码如下:
//添加导航右边按钮 UIToolbar *tools = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 150, 44)]; [tools setTintColor:[self.navigationController.navigationBar tintColor]]; [tools setAlpha:[self.navigationController.navigationBar alpha]]; NSMutableArray *buttons = [[NSMutableArray alloc] initWithCapacity:1]; UIBarButtonItem *firstBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(showSpecial)]; [buttons addObject:firstBtn]; [tools setItems:buttons animated:NO]; UIBarButtonItem *myBtn = [[UIBarButtonItem alloc] initWithCustomView:tools]; self.navigationItem.rightBarButtonItem = myBtn;
25、循环删除uiview
for (UIView *subview in scrollView.subviews) { if ([subview isKindOfClass:[CatalogView class]]) { [subview removeFromSuperview]; } }
26、ios4以前内存管理
00
相关推荐
《iOS基础学习:英文PPT解析》 iOS开发是当今移动应用开发领域的重要一环,尤其对于想要进入这个领域的初学者来说,掌握基础知识至关重要。这份"iOS学习PPT"(英文版)是一份宝贵的资源,它系统地介绍了iOS开发的...
1. iOS安全学习资料汇总 首先,熊猫正正通过整理,列出了众多iOS安全学习资源,包括网站、博客文章、GitHub项目等。这些资源覆盖了iOS安全的各个方面,从基础的安全知识学习到高级的漏洞挖掘与利用技术。 (1) iOS...
1. **Swift语言基础**:Swift是苹果官方推荐的编程语言,用于开发iOS、macOS、watchOS和tvOS应用程序。初学者首先要掌握其基本语法、变量和常量、控制流、函数和类型系统。 2. **UIKit框架**:UIKit是iOS应用的核心...
在iOS学习之旅中,开发者需要掌握一系列技术和工具,才能创建出色的应用程序。以下是一条详细的iOS学习路线,帮助你从入门到精通。 首先,你需要熟悉基础的编程语言。iOS开发主要使用Swift,这是一种由Apple推出的...
在iOS学习的过程中,掌握各种资源和工具的获取途径是非常重要的,因为这可以帮助开发者迅速找到所需的教程、代码示例以及文档,从而提升学习效率。以下是一些关于iOS学习资料下载的网址,涵盖了数据保存、游戏开发...
iOS学习完整路线图,C语言、Objective-C、iOS基础、iOS高级、游戏开发
在iOS开发中,"流水布局"(Waterfall Layout)是一种常见的UI设计模式,它通常用于展示商品列表或者图片网格,让界面看起来更有层次感和...通过学习和分析这个demo,开发者可以更好地理解和掌握iOS中的高级布局技巧。
【iOS学习总结】 在iOS开发领域,这是一份个人学习经验的总结,涵盖了从入门到进阶的关键知识点。iOS开发主要使用Swift编程语言,这是一种由Apple公司推出,旨在提升开发效率,同时保持代码简洁和安全的语言。Swift...
为了学习ios编程,自己设计了一个账本的小程序,功能如下: 1,成员列表:显示所有成员,添加成员,删除成员,交费,查询个人消费详情。 2.添加消费:消费信息,消费人员,消费金额, 3.消费清单:根据开始和截止日期...
在本《学习iOS基础教程电子书(1)》中,主要涵盖了针对iOS开发初学者的基础知识,旨在帮助读者系统地理解和掌握iOS应用开发的核心概念。这本书的起点是为那些对编程有一定了解,但对iOS平台尚属陌生的读者设计的。...
1. **通知中心(Notification Center)**:iOS 5引入了全新的通知方式,用户可以通过下拉屏幕顶部来查看所有通知,而无需中断当前任务。这极大地提高了用户体验,使得应用通知更加有序和集中。 2. **iCloud**:苹果...
Objective-C编程之道:IOS设计模式解析.pdf
本压缩包“ios学习资料打包”提供了两个核心的学习资源:“Objective-C.2.0程序设计.pdf”和“一步一步学习iOS5编程第二版.pdf”,旨在帮助开发者系统地掌握Objective-C和iOS开发的基本概念和实践技巧。 1. **...
这份资源包含了丰富的playground文件,旨在帮助学习者通过实践来深入理解iOS开发的关键概念和技术。Playgrounds在Xcode中是一种强大的工具,允许开发者即时查看代码效果,无需完整构建应用程序,从而加速学习进程。 ...
1. **开发工具安装**:在iOS开发中,主要使用的开发工具是Xcode,这是一个集成开发环境(IDE),包括代码编辑器、界面构建工具以及调试器等。安装Xcode是iOS开发者入门的第一步,它可以从Apple Developer官网或者Mac...
ios应用开发学习的好资料,很好的学习资料
这个压缩包文件包含了一个大学生毕业设计的完整项目实训,它是一个基于Ionic框架开发的手机应用APP,名为“流水账app”。这个应用旨在帮助用户记录日常生活中的收支情况,提供便捷的财务管理功能。下面是关于这个...
在探讨如何学习iOS基础时,首先我们要明确iOS开发的核心理念和工具,这对于初学者来说至关重要。iOS开发区别于其他平台开发,有着其特有的编程语言、开发工具以及设计模式。随着苹果公司在2014年推出Swift语言后,...
1. **Objective-C/Swift编程语言**:iOS开发主要使用的两种编程语言,Objective-C是传统的选择,而Swift是苹果在2014年推出的新语言,以其现代语法和安全性受到欢迎。学习这两种语言的基础语法、类与对象、协议、...