- 博客(47)
- 收藏
- 关注
原创 指定UIView的某几个角为圆角
如果需要将UIView的4个角全部都为圆角,做法相当简单,只需设置其Layer的cornerRadius属性即可(项目需要使用QuartzCore框架)。而若要指定某几个角(小于4)为圆角而别的不变时,这种方法就不好用了。对于这种情况,Stackoverflow上提供了几种解决方案。其中最简单优雅的方案,就是使用UIBezierPath。下面给出一段示例代码。 UIB
2015-01-14 15:47:59 424
原创 截图
-(UIImage *)getImageView{ UIGraphicsBeginImageContext(self.bounds.size); [self.layerrenderInContext:UIGraphicsGetCurrentContext()]; UIImage *Img =UIGraphicsGetImageFromCurrent
2014-12-24 09:43:47 322
原创 UIView常用的一些方法小记之setNeedsDisplay和setNeedsLayout
1,UIView的setNeedsDisplay和setNeedsLayout方法 首先两个方法都是异步执行的。而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到 UIGraphicsGetCurrentContext,就可以画画了。而setNeedsLayout会默认调用layoutSubViews, 就可以 处理子视图中的一些数据。
2014-11-10 16:36:07 349
原创 NSURLCache内存缓存
在IOS应用程序开发中,为了减少与服务端的交互次数,加快用户的响应速度,一般都会在IOS设备中加一个缓存的机制。使用缓存的目的是为了使用的应用程序能更快速的响应用户输入,是程序高效的运行。有时候我们需要将远程web服务器获取的数据缓存起来,减少对同一个url多次请求。下面将介绍如何在IOS设备中进行缓存。 内存缓存我们可以使用sdk中的NSURLCache类。NSURLRequ
2014-10-17 18:19:48 331
原创 tableView 懒加载
//1、慢慢滑动的时候手离开屏幕//2、快速滑,手离开屏幕-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ if (decelerate == YES) { //说明手离开屏幕,但是tableview还在减速,说
2014-10-10 12:00:21 545
原创 打电话、发短信、发邮件
//打电话-(void)telBtnDown{ //第一种打电话,挂断后会停留在系统电话里 NSString *telUrl = [NSStringstringWithFormat:@"tel://%@",@"10086"]; [[UIApplicationsharedApplication] openURL:[NSURLURLWithStr
2014-10-10 11:48:02 336
原创 归档
把需要保存的对象转换成NSData,然后存在本地等下次需要使用的时候,再解归档,就可以使用了第一种方法(存一个)-(void)fun1{ NSString *str = @“成本价”; //归档 NSData *data = [NSKeyedArchiver archivedDataWithRootObject:str]; //存本地
2014-10-09 19:56:11 237
原创 给tableView添加一行
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:_dataArray.count-1 inSection:0];[_tableView insertRowsAtIndexPaths:@[indexPaht] withRowAnimation:UITableViewRowAnimationFade];自动滑动到最后一行[
2014-10-09 19:55:30 4179
原创 根据字的大小自适应Label的大小
CGSize size = [str boundingRectWithSize:CGSizeMake(250,1000) options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFo
2014-10-09 19:54:58 265
原创 不失帧的情况下进行图片的拉伸
定义图片UIImage *leftImage = [[UIImage imageNamed:@“ReceiverTextNodeBkg.png”] stretchableImageWithLeftCapWidth:30 topCapHeight:35];然后把图片加到 imageView 上最后根据宽度来改变 imageView的宽度、高度
2014-10-09 19:54:27 723
原创 隐藏tabbar
第一种方法:在视图控制器的实例化被加入到导航控制器的栈容器之前,设置属性,相应的设置才会生效self.hidesBottomBarWhenPushed = YES;第二种方法:在push的页面,通过改变标签栏控制器view的子view的frame的形式,来达到隐藏标签栏的效果-(void)viewDidAppear:(BOOL)animated{ NSArra
2014-10-09 19:54:17 271
原创 混编
arc环境下 使用非arc库的时候需要添加 -fno-objc-arc 不对他进行arc操作,让他使用手动管理非arc环境下使用arc库需要添加 -fobjc-arc
2014-10-09 19:52:15 350
原创 把不可变字符串转成可变字符串
第一种方法NSMutableString *str1 = [str mutableCopy];第二种方法NSMtableString *str2 = [NSMutableString stringWithFormat:@"%@“,str];
2014-10-09 19:51:42 579
原创 判断客户端类型 iphone 和 ipad
NSString *clientType = [[UIDevice currentDevice] model];设备标识首先导入第三方库 UIDevice+IndentifierAdditionNSString *udid = [[UIDevice currentDevice] uniqueDeviceIdentifier];
2014-10-09 19:50:42 289
原创 table有左右两个btn,并且不止一段的时候,怎么设置tag值
btn.tag = 1000+indexPath.row*2+100*indexPath.section;btn1.tag = 1000+indexPath.row*2+1+100*indexPath.section;-(void)btnDown:(UIButton *)btn{ NSLog(@"下面进入第%d大页面的第%d小页面",(btn.tag-1000
2014-10-09 19:50:13 287
原创 动画
1、[UIView animateWithDuration:0.5 animations:^{textField.frame = CGRectMake(10,5,210,30)}];第一个参数是动画持续时间第二个参数是动画内容,这里是个block,这个用^{}来书写,在{}中间写我们的内容,什么都行,改变颜色、位置、尺寸、数据都行,同时写n个都行,用“;”隔开2、 [UIVi
2014-10-09 19:49:17 267
原创 table的编辑模式(多选,插入,删除)
//设置table的任意位置,开启何种编辑模式-(UITableViewCellEditingStyle)tableVIew:(UITableView *)tableVIew editingStyleForRowAnIndexPath:(NSIndexPath *)indexPath{ //单是单,一起就是多选 return UITableViewCellEditi
2014-10-09 19:48:40 372
原创 单例传值
1、.h中定义属性和方法@property(nonatomic,retain)NSString *newStr;+(id)shareInstance;2、.m中实现static Value *value = nil;@implementation Value+(id)shareInstance{ static dispatch_on
2014-10-09 19:45:47 354
原创 索引index
//获得索引内容-(NSArray *)sectionIndexTitlesForTableView:(UITabelView *)tableView{ NSMutableArray *indexArr = [NSMutableArr arrayWithCapacity:0]; for(int i = ‘A’; i { [indexArr
2014-10-09 19:45:39 311
原创 通知传值
1、要传的页面[[NSNotificationCenter defaultCenter] postNotificationName:@“deleteNav” object:nil];2、接受的页面[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hidenNav) name:@“de
2014-10-09 19:45:03 253
原创 代理传值
后出来的页面想影响之前的页面需要用代理后出来的页面是触发类,之前的时被触发类被触发类在push之前把自己给second的delegate属性-(void)pushBtnDown{ SecondViewController *second = [[SecondViewController alloc] init]; //在push前把自己给se
2014-10-09 19:44:08 240
原创 如何在本地查看应用程序沙盒
正常情况下,Finder文件下有一部分文件被隐藏起来,防止被用户破坏,在终端里面用命令打开显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -booltree隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -boolfalse
2014-10-09 19:42:37 475
原创 Block
特点:如果block里面用到了外界变量,block里面变量的值永远是初始值,不管外面怎么改变,block里面的值都不会发生改变。其实block里面变量的值,是block复制了一份,已经不是外面变量的值了。__block int a = 10; 如果用双下划线声明一个变量,那么在block里面使用的值可以进行修改了。和c语言中函数指针类似int (^addBlock) (
2014-10-09 19:41:40 302
原创 NSUserDefaults传值
1、传值NSUserDefaults *user = [NSUserDefaluts standardUserDefaluts]; [user setObject:@“123” forKey:@“name”];[user setObject:@“sdf” forKey:@“password”];[user synchronize];2、接值NSUserDefaults
2014-10-09 19:41:27 559
原创 监听键盘出现和消失
键盘出现[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];键盘消失[[NSNotificationCenter defaultCenter] addO
2014-10-09 19:38:59 320
原创 多线程
-(void)buttonClick{ // [self thread]; //[self operation]; // [self gcd]; //[self gcd2]; [selfdownloadImage];}-(void)downloadImage{ dispatch_asyn
2014-09-23 16:54:34 262
原创 XMPP
- (void)viewDidLoad{ [superviewDidLoad]; //stream流 _stream = [[XMPPStreamalloc] init]; //设置服务器名称 [_streamsetHostName:HOST]; [_streamaddDeleg
2014-09-23 16:51:55 491
原创 ASI自定义post请求
NSURL *url = [NSURLURLWithString:@"http://192.168.88.8/app/qianfeng/ichat/register.php”]; //客户端类型 iphone ipad NSString *clientType = [[UIDevicecurrentDevice] model];
2014-09-23 16:41:48 451
原创 UIWebView
#import "ViewController.h"@interfaceViewController ()UIWebViewDelegate>{ UIWebView *_webView; UITextField *_textField;}@end@implementation ViewController
2014-09-15 17:45:08 260
原创 浅拷贝、深拷贝
copy、mutableCopy copy:不管是可变的,还是不可变的,结果都是不可变的 mutableCopy:不管是不可变的,还是可变的,结果都是可变的
2014-09-10 16:40:07 226
原创 KVC、KVO
//KVC KVO //KVC 赋值方式 key value coding 键值编码 //KVO key value observer键值监听 /* [item setValue:@"西门吹雪" forKey:@"name"]; 1、item里找叫做name的属性去赋值
2014-09-10 15:43:06 217
原创 RequestQueue 请求队列
/* NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://api.douban.com/v2/book/search?q=harry&apikey=00862fc9947075ac01928f5cbd516104"]]; //操作队列 NSO
2014-09-05 20:02:41 2136
原创 AFNetworking
- (void)viewDidLoad{ [superviewDidLoad]; //https://api.douban.com/v2/book/search?q=harry&apikey=00862fc9947075ac01928f5cbd516104 _url = [NSURLURLWithString:@"
2014-09-05 19:56:33 250
原创 对系统的get异步请求进行一下小封装
1、.htypedefvoid(^FinishBlock)(NSData *data);typedefvoid(^FailedBlock)();//typedef void(^)(NSData *data) FinishBlock; 这是之前的写法,oc要求上面的写法@interface QFHTTPRequest :NSObjectNS
2014-09-02 19:16:56 225
原创 封装的评分星星类
1、.h@interface StarView :UIView{ UIView *_backView; UIView *_foreView;}-(void)setStar:(float)score;2、.m
2014-09-02 19:15:33 354
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人