iOS
文章平均质量分 56
西西里的仔仔
这个作者很懒,什么都没留下…
展开
-
CAShapeLayer中fillRule所遵循的Winding Rules
NSNonZeroWindingRule:判断一个点是否在图形内,从该点作任意方向的一条射线,然后检测射线与图形路径的交点情况,曲线从左向右通过射线记为-1,曲线从右向左通过射线记为+1,如果总数为0,表示该点在曲线外,否则该点在曲线内。NSEvenOddWindingRule:判断一个点是否在图形内,从该点作任意方向的一条射线,然后检测射线与图形路径的的交点情况,交点个数为奇数,表示该点翻译 2015-04-18 22:59:42 · 607 阅读 · 0 评论 -
UIAlertView自带password输入框
UIAlertView *alertView = [[UIAlertViewalloc]initWithTitle:@"Password" message:@"Please enter your password"原创 2015-07-23 00:13:02 · 469 阅读 · 0 评论 -
消息机制工作原理(isa指针)
相关的一个问题原创 2015-08-03 11:06:38 · 570 阅读 · 0 评论 -
srandom((unsigned)time(NULL))
使用时间戳产生不同的随机数原创 2015-08-03 10:23:20 · 879 阅读 · 0 评论 -
UIFont设置
+ (UIFont *)preferredFontForTextStyle:(NSString *)stylestyle:UIKIT_EXTERNNSString *const UIFontTextStyleHeadlineNS_AVAILABLE_IOS(7_0);UIKIT_EXTERNNSString *const UIFontTextStyleBody原创 2015-07-22 16:49:02 · 400 阅读 · 0 评论 -
Core Animations一些常用常忘的吧
CAKeyframeAnimation设置path后想在delegate里取最后的值,好像不太容易,values和path貌似二者只能取其一,就换valuesvalues是NSArray类型,值是NSValue或者NSNumber,看设置时候是什么NSValue转其他值:比如CGPoint: NSValue *value = (NSValue *)array[array原创 2015-07-23 13:32:45 · 418 阅读 · 0 评论 -
UIButton的一些设置
1.BUTTON的字体设置不能直接setFont[button setTinColor:][button setTitle: forState: ]button.titleLabel.font = [UIFont ...]2.button目标target[button addTarget: action: forControlEvents: ];3.targ原创 2015-07-21 20:17:06 · 467 阅读 · 0 评论 -
iOS实现UPD广播(AsyncSocket)
之前试了OC自带的socket库进行实现,但是在向服务器发送消息包时候block了,还是用AsyncSocket好了。1.创建socket,修改配置(允许广播形式)2.绑定本地IP3.向服务器发送包4.接收包1.创建socket:一个客户端只进行一条socket的连接,所以这里使用了单例+(Singleton *)sharedInstance{ static原创 2015-11-04 11:06:24 · 1520 阅读 · 0 评论 -
iOS开发中的一些tips
6/24/151.去除底下空白行:self.tableView.tableFooterView = [[UIView alloc]init];还可以把分割线去了看起来效果差不多,self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone2.今天遇到的坑,建立tableViewCell子类后对调用layoutSubvie原创 2015-06-24 09:55:59 · 393 阅读 · 0 评论 -
Navigation Bar色设置
self.navigationController.navigationBar.shadowImage = [[UIImagealloc] init];[self.navigationController.navigationBarsetBackgroundImage:[[UIImagealloc] init] forBarMetrics:UIBarMetricsDef原创 2015-07-22 22:42:17 · 351 阅读 · 0 评论 -
AsyncSocket实现TCP连接
有了之前UDP连接的成功我以为TCP连接就直接照搬就好了,结果在接收报文的地方被坑了TCP整体比UDP复杂点点点,毕竟人家的报文长度有20个字节。总体思路就是1.先检查有没有连接,如果没有创建,有的话直接readData2.新创立的连接调用连接成功的delegate方法,在其中调用readdata(就是这里被坑了,死都读不到数据)3.然后调用received data 的del原创 2015-11-06 15:15:12 · 1874 阅读 · 0 评论 -
解决App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure。
在info.plist中加入原创 2015-09-21 16:14:09 · 326 阅读 · 0 评论 -
安装cocoapods以及运行
建立Podfile(配置文件) 接上 输入 vim Podfile 键盘输入i 进入编辑模式 输入platform :ios, '9.3' pod 'MBProgressHUD', '~> 0.8' 键盘按esc 输入: 然后在冒号后输入wq原创 2015-08-20 12:25:28 · 392 阅读 · 0 评论 -
在Github上传项目
github上创建一个新的repository创建好后就进入了项目页面然后点击点击右侧按钮复制url在桌面创建一个文件夹cd 到该文件夹git clone 刚才复制的地址cd进入git添加的那个项目文件中然后在该项目文件中拖入你想要添加的文件这时候可以查询下git status原创 2016-06-28 11:14:03 · 262 阅读 · 0 评论 -
NSProxy的使用
用的案例代码是网上其他资源的,主要是NSProxy的子类和场景类中的一点说明抄书的一段:NSProxy的作用是为其他对象的替身对象定义一个API。发给代理对象的消息会被转发给实体对象,或者让代理加载实体对象或吧代理自身变成实体对象There are two instance methods that are essential to make thewhole proxy原创 2016-07-28 14:55:51 · 489 阅读 · 0 评论 -
自己写的类似UITextView的类,实现UIKeyInput协议
这是别人的一个app作品,我仿着做的,之前对keyboard用的不多,一般都是UITextField用到的,从来没想过可以写个类似功能的看到这个画面的时候,我在想这是有个隐藏的textField把键盘召唤出来的么,哈哈,也不是没试,写起来挺恶心的,然后才知道可以写个view实现UIKeyInput协议召唤键盘需要becomeFirstResponser,UIView中canBeco原创 2015-07-17 15:07:59 · 1194 阅读 · 0 评论 -
关联引用(associative reference)
1.分类中不能添加实例变量,但可以通过关联引用添加键值数据@interface Person:NSObject@property (nonatomic, readwrite, copy) NSString *name;@end#import @interface Person(EmailAddress)@property (nonatomic, readwrite, copy)原创 2015-07-29 14:53:12 · 319 阅读 · 0 评论 -
Notification与Delegate实现通讯沙拉实例
这个例子是我在AppStore上下的一个沙拉的app模仿做的,现在还没做文件管理。黄星星就是收藏的意思,在navigationBar上面有个按钮查看收藏夹内容的,黄星星是做了个button,开始想做view,但是没法定位view的位置,我在UITableViewCell没能实现,主要尝试是hittest,layer和view的方式都试过了。然后再说这个button,在改变收藏状态后是用原创 2015-06-24 22:40:42 · 420 阅读 · 0 评论 -
Navigation上的BarButton添加动画效果
这个秘诀就是UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithCustomView:];然后在view上添加动画效果就好了。这里view上要添加TapGesture在viewController中的设置self.navigationController.navigationBar.clip原创 2015-06-25 22:10:41 · 715 阅读 · 0 评论 -
UIImageView传值与生命周期的关系
今天在写一个demo的过程中被这个问题卡壳了,第一个页面中获得UIImage,传值给第二个页面,第二个页面的imageView是在storyboard中手动布局好的。-(void)setImage:(UIImage *)image{ self.imageView.image = image}imageView并未接受到image,但是image输出是有值的,然后就做了些无谓的原创 2015-06-28 14:24:56 · 370 阅读 · 0 评论 -
Socket Client端的思路
首先用CFStreamCreamPairWithSocketToHost获取CFReadStreamRef和CFWriteStreamCFReadStreamRef readStream;CFWriteStreamRef writeStream;CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"localhost", 80, &原创 2015-06-30 12:34:45 · 711 阅读 · 0 评论 -
iOS and OS X Network Programming Cookbook |Creating an echo server(Bonjour)(上)
Bonjour是一种zero configuration networking。Publishing a Bonjour serviceBonjour allows for the discovery ofnetwork devices and services on an IP network without acentralized server.翻译 2015-07-01 10:47:30 · 530 阅读 · 0 评论 -
iOS and OS X Network Programming Cookbook |Creating an echo server(BSD)
对于这本书没有过实战经验,学起来非常沉闷,搭建服务器应该是用得最多的了,因为我不会用其他的方法搭建在整个学编程的过程中也是这样,有点点实战就加点血,多看点这样不知道怎么用但是又不得不看不得不知道的东西就掉点血建立socket,需要调用socket(), bind()和listen()都不能出错。在书中的案例中使用的是IPV4和TCP创建的socket(IPV6换成AF_翻译 2015-06-30 22:22:10 · 624 阅读 · 0 评论 -
iOS and OS X Network Programming Cookbook |Retrieving network address information
终于决定整理下这本书了获取本机所有network的信息(interface name,IP版本,IP地址,掩码和网关,我并不知道他们干吗用的。。),首先创建一个NetworkAddressStore类来存储这些信息然后再获取所有的active network interface,并为每一个创建一个NetworkAddressStore实例,将这些存储在数组中。具体步骤(翻译 2015-06-30 16:28:46 · 462 阅读 · 0 评论 -
iOS and OS X Network Programming Cookbook |Performing a network address resolution
这个部分解决的是host/service name 和 sockadd structure相互转换的问题。用到的两个方法:Getaddrinfo():通过给定的host/service name返回相关信息,存储在addrinfo structure中.Getnameinfo():使用给定的sockaddr structure得到host/service name。主要步骤翻译 2015-06-30 20:23:58 · 434 阅读 · 0 评论 -
iOS and OS X Network Programming Cookbook |Creating an echo Client(CFSocket)
@property (nonatomic) int errorCode; @property (nonatomic) CFSocketRef sockfd; -(instancetype)initWithAddress:(NSString *)addr andPort:(int)port; -(NSString *) writtenToSocket:(CFSocketRef)so翻译 2015-07-01 22:56:41 · 632 阅读 · 0 评论 -
iOS and OS X Network Programming Cookbook |Creating an echo server(Bonjour)(下)
在继发布寻找解析后,我们终于要连接service了这里用到了之前提到的CFSocketServer类以及BonjourPublishServer类(上篇中提到的 Publishing a Bonjour service)Publish和implement service 是两个单独的步骤,相互之前并无依存这个service是用iOS写的长酱紫,stop btn控制开启和翻译 2015-07-01 17:31:18 · 530 阅读 · 0 评论 -
iOS and OS X Network Programming Cookbook |Creating an echo server(CFSocket)
建立socket的方法与BSD socket相同(见上一篇),主要的不同在监听上,这里使用的是run loop对socket进行监听,这是CFNetwork的一个很大的优势在通过BSD socket获取到listening descriptor后,通过CFSocketCreateWithNative()创建CFSocket,然后将其加入run loop中其实大家都知道BSD基本没有实用性,翻译 2015-06-30 23:46:03 · 689 阅读 · 0 评论 -
Bonjour聊天室的总体思路
吐槽一句这里文章审核的速度太慢了,本来想加在上一篇的原创 2015-07-04 19:25:06 · 371 阅读 · 0 评论 -
Bonjour写的聊天室的思路(一)——搭建服务器
搭建服务器:1.创建socket--CFSocketCreate设置accept后callback + 确保相同的socket在每次连接后得到重用(setsockopt()) 2.bind——创建sockaddr_in struct记录服务器信息,port设为0(主机自动分配)再用[NSData dataWithBytes: length: ]转换为NSData,用CFSo原创 2015-07-03 21:57:07 · 561 阅读 · 0 评论 -
Bonjour写的聊天室的思路(二)——UI和logic
这是第一个页面创建新room的按钮1.strop server browser2.初始化LocalRoom3.将LocalRoom(chatRoom)传值给下一个页面chatRoomViewController4.调用chatRoomViewController的 activate①实现chatRoom代理(以下在LocalRoom中实现的)②调用chatRoom原创 2015-07-04 10:22:08 · 592 阅读 · 0 评论 -
NSTimer计时器后台运行的解决方法
思路:切换至后台计时器暂停,记录下当前时间,切换回前台计时器回复,计算中间时间差[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationEnterBackground) name:UIApplicationDidEnterBackgroundNotification objec原创 2016-08-10 17:25:18 · 3091 阅读 · 0 评论