![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS-开发
pengf_wu
我走过的路寸草不生
展开
-
Clang编译Block
在开始介绍Clang编译Block之前,可以先了解下Clang编译器:Xcode clang 编译器 中文The Compiler...转载 2019-09-10 10:39:23 · 344 阅读 · 0 评论 -
超级好用的iOS框架
今天给大家推荐几款超级好用的iOS框架: 1.新闻类的顶部选项卡类似网易新闻:WMPageController,HMSegmentControl,HTHorizontalSelectionList 这三者我跟推荐第一种,第一种有很多手势,比如点击顶部列表会滑动到最顶端。具体使用方法请参考点击打开链接 2.自定义tabbar:CYLTabBarController 闲鱼和转转这两个app相信大转载 2017-05-26 16:07:48 · 645 阅读 · 0 评论 -
浅谈<photo.h>框架
首先我们简单的了解一下框架的二结构 这里面大家只需要关注//获取胶卷相册- (void)getCameraRollAlbum:(BOOL)allowPickingVideo allowPickingImage:(BOOL)allowPickingImage completion:(void (^)(AlbumModel *model))completion{ __block Albu原创 2017-05-24 12:18:56 · 529 阅读 · 0 评论 -
App 查询版本信息
比如查看微信相关的apphttp://itunes.apple.com/search?term=微信&entity=software查看某应用的版本等详细信息http://itunes.apple.com/lookup?id=APP_ID这样就可以判断最近版本来提示更新所有的APIThe following are examples of fully-qualified URLs for speci原创 2017-04-14 09:12:40 · 1043 阅读 · 0 评论 -
iOS获取图片的区域主色
之前的项目有这样的需求,有一个页面可以检索一块区域内图片的主色。效果图如图所示 下面是如何获取区域主色的实现思路: 首先,我们需要从相册,或者相机去获取图片; 其次,得到图片需要截取区域图片; 然后,获取截取图片的主色。 理想中是这样的,但是有很多阻碍,得到的图片需要自适应imageView(imageView的宽高是固定的),截图的得到的区域不是自己想要的区域。这里需要将图片等比例缩原创 2017-03-19 20:09:49 · 5334 阅读 · 0 评论 -
Socket及时通讯
1、AsyncSocket介绍如果需要在项目中像QQ微信一样做到即时通讯,必须使用socket通讯。iOS中Socket编程的方式:BSD Socket:BSD Socket 是UNIX系统中通用的网络接口,它不仅支持各种不同的网络类型,而且也是一种内部进程之间的通信机制。而iOS系统其实本质就是UNIX,所以可以用,但是比较复杂。CFSocket:CFSocket是苹果提供给我们的使用Socket转载 2017-04-14 09:05:56 · 625 阅读 · 0 评论 -
KVC修改textfiled的placehoder颜色
1.iOS5+ oc版:[[UILabelappearanceWhenContainedIn:[UISearchBarclass],nil]setTextColor:[UIColorredColor]];2.取出searcher里的textfield,再进行修改://取出textfieldUITextField*searchField=[searchBar valueForKey:@”_search原创 2017-04-14 09:03:44 · 238 阅读 · 0 评论 -
navigationBar.translucent
iOS7之后由于navigationBar.translucent默认是YES,坐标零点默认在(0,0)点 当不透明的时候,零点坐标在(0,64);如果你想设置成透明的,而且还要零点从(0,64)开始,那就添加:self.edgesForExtendedLayout = UIRectEdgeNone;原创 2017-04-14 09:01:34 · 297 阅读 · 0 评论 -
设置UIBarButtonItem的间距
- (void)addNavigationItem{ UIButton *btnOne = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)]; btnOne.backgroundColor = [UIColor redColor]; UIBarButtonItem *leftOne = [[UIBarButt原创 2017-03-17 13:17:19 · 7123 阅读 · 0 评论 -
自定义navigationBar字体大小颜色背景色
自定义navigationBar的title内容和字体大小、颜色self.title = @"登 录";self.navigationController.navigationBar.titleTextAttributes = @{ NSFontAttributeNa原创 2017-03-16 12:40:28 · 888 阅读 · 0 评论 -
ios通用宏定义
//通用宏定义#ifndef define_h#define define_h//获取系统对象#define kApplication[UIApplication sharedApplication]#define kAppWindow[UIApplication sharedApplication].delegate.window#define kAppDelegate[AppDelegate s转载 2017-06-06 09:08:55 · 447 阅读 · 0 评论 -
button高亮去除问题
我们都知道项目中有时候不许需要button点击时候的高亮效果,因为点击高亮的时候图片会变灰,那么我们该如何去除高亮效果self.adjustsImageWhenHighlighted = YES;通过设置有时候可以达到目的,但是有的时候却没法修改,依然会有高亮,图片变灰色。// 不设置高亮,属性方法有可能去不掉- (void)setHighlighted:(BOOL)highlighted{}我们原创 2017-05-22 10:02:19 · 998 阅读 · 0 评论 -
iOS Block原理探究以及循环引用的问题
iOS Block原理探究以及循环引用的问题 《Objective-C高级编程》这本书就讲了三个东西:自动引用计数、block、GCD,偏向于从原理上对这些内容进行讲解而且涉及到一些比较底层的实现,再加上因为中文翻译以及内容条理性等方面的原因,书本有些内容比较晦涩难懂,在初初读的时候一脸懵逼。本文是...转载 2019-09-09 17:10:33 · 428 阅读 · 0 评论 -
iOS即时通讯,从入门到“放弃”?
image前言本文会用实例的方式,将iOS各种IM的方案都简单的实现一遍。并且提供一些选型、实现细节以及优化的建议。注:文中的所有的代码示例,在github中都有demo:iOS即时通讯,从入门到“放弃”?(demo)可以打开项目先预览效果,对照着进行阅读。言归正传,首先我们来总结一下我们去实现IM的方式第一种方式,使用第三方IM服务对...转载 2019-09-09 16:55:35 · 2604 阅读 · 0 评论 -
iOS: 玩转UICollectionViewLayout
前言:实现垂直方向的单列表来说,使用UITableView足以;若是需要构建横向滑动列表、gridView等直线型布局,则使用UICollectionView+UICol...转载 2019-09-09 16:43:18 · 587 阅读 · 0 评论 -
JavaScriptCore浅析
OS X Mavericks 和 iOS 7 引入了 JavaScriptCore 库,它把 WebKit 的 JavaScript 引擎用 Objective-C 封装,提供了简单,快速以及安全的方式接入世界上最流行的语言。不管你爱它还是恨它,JavaScript 的普遍存在使得程序员、工具以及融合到 OS X 和 iOS 里这样超快的虚拟机中资源的使用都大幅增长。这样一来,先抛开动态和类型安...转载 2019-09-05 09:27:03 · 375 阅读 · 0 评论 -
使用cocoaPod发布、更新Framework
使用cocoaPod发布、更新Framework首先提供一下参考链接:https://www.jianshu.com/p/343a008cfc8e?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=qq这里面简单的描述一下,发布的自己的Framework的几个简单的步骤:首先在...原创 2019-07-19 16:58:48 · 597 阅读 · 0 评论 -
如何在swift的framework中使用加密框架CommonCrypto/CommonCrypto.h
此文章是https://stackoverflow.com/questions/25248598/importing-commoncrypto-in-a-swift-framework翻译而来。首先你需要创建一个Aggregate target 如下图设置runScript runScript代码如下: # This if-statement means we'll only run ...原创 2018-08-01 20:37:40 · 1690 阅读 · 0 评论 -
最详细TextKit分析
1、粗略的了解一下TextKit 在iOS开发中,处理文本的视图控件主要有4中,UILabel,UITextField,UITextView和UIWebView。其中UILabel与UITextField相对简单,UITextView是功能完备的文本布局展示类,通过它可以进行复杂的富文本布局,UIWebView主要用来 加载网页或者pdf文件,其可以进行HTML,CSS和JS等文件的...原创 2018-02-26 22:32:32 · 5592 阅读 · 0 评论 -
UIButton中的titleEdgeInsets和imageEdgeInsets可以管理
UIButton中的titleEdgeInsets和imageEdgeInsets可以管理button中image和title的布局。 如果对其理解不够深入,用纯数字进行布局管理,经过不断的调试,还是能试出来的,但是如果改变了图片大小或文字长度,又要再来一遍。 作为程序猿,我们不应该放弃任何一个偷懒的机会。默认情况下,是图片在左,文字在右,垂直居中显示,如下图:button.titleEdgeI原创 2017-03-16 09:22:59 · 226 阅读 · 0 评论 -
浅析SDCycleScrollView实现原理
SDCycleScrollView是使用UICollectionView实现的轮播,图片的网络获取是依赖SDWebImage,也就是说使用SDCycleScrollView你就必须的使用SDWebImage。下面来简单介绍一下SDCycleScrollView的实现原理;1.SDCycleScrollView的大部分逻辑代码的实现都是放在“SDCycleScrollView.m”文件中,着这个文件里原创 2017-08-25 14:18:35 · 2143 阅读 · 0 评论 -
Quartz 2D详解
今天博主有一个Quartz 2D的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.在开始正文之前,首先让我们解决一个新手经常会问的问题,Quartz 2D和Core Graphics有什么区别和联系在iOS中,Quartz 2D是Core Graphics框架的一部分,是Core Graphics的底层引擎,简单来说,可以将Quartz 2D和Core Graphics划等号,也就是Qua转载 2017-03-16 09:14:19 · 430 阅读 · 0 评论 -
模态弹出将背景设置为透明
#ifdef __IPHONE_8_0 //如果定义过,就编译这里。 login.modalPresentationStyle = UIModalPresentationOverCurrentContext;#else //如果没有定义过,就编译这里。 LoginTipViewController.modalPresentationStyle = UIModalPr原创 2017-03-16 09:10:07 · 3332 阅读 · 0 评论 -
让图片自适应imageView
有时候不知道图片的大小,但是ImageView的大小是固定的,如何让图片自适应呢;当然我们可以获取图片的宽高,按比例进行计算,但是现在有一个更好的办法:_pickerImageView.contentMode = UIViewContentModeScaleAspectFit;这样就很轻松实现图片自适应; 另外附上获取图片宽高的代码:CGFloat width = CGImageGetWidth(原创 2017-03-19 20:20:08 · 976 阅读 · 0 评论 -
iOS 10调用相册权限设置crash问题
This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSContactsUsageDescription key with a string value explaini转载 2017-03-19 20:13:48 · 285 阅读 · 0 评论 -
Xcode 自定义系统文件注释
Xcode 自定义系统文件注释大家都知道我们在创建一个新的文件的时候,都会有如下的注释。 但是在项目中我们需要显示自己的个性,也可能是团队的要求,这时候你就需要用到自定义注释。修改之后的效果是这样的! 下面来解释一下详细的步骤。1.第一步 如果需要定制模板内容可以查找:应用程序->xcode->右击显示包内容 Xcode ▸ Contents ▸ Developer ▸ Platfo原创 2017-03-05 15:06:55 · 360 阅读 · 0 评论 -
pods常见错误
[!] `<PBXResourcesBuildPhase UUID=`xxx`>` attempted to initialize an object with an unknown UUID. `0B6359431C33CA0200C80C5D` for attribute: `files`. This can be the result of a merge and the unknown U原创 2017-03-18 10:41:09 · 356 阅读 · 0 评论 -
iOS使用第三方的字体
项目中想使用第三方的字体,在stackoverflow上查询解决办法,也折腾一会,添加成功,示例如下:1.将xx.ttf字体库加入工程里面2.在工程的xx-Info.plist文件中新添加一行Fonts provided by application,加上字体库的名称3.引用字体库的名称,设置字体: [UIFontfontWithName:@"fontname" size:24];1. UILabe转载 2017-03-18 10:38:09 · 356 阅读 · 0 评论 -
iOS后台进行数据更新和下载
三种方式使得iOS程序即使在关闭或崩溃的情况下也能够在后台持续进行一些任务,比如更新程序界面快照,下载文件等。这三个方法分别是Background Fetch,Remote Notification和NSURLSession的backgroundSessionConfigurationBackground Fetch开启首先在info plist文件中开启UIBackgroundModes的Back转载 2017-03-18 10:32:09 · 855 阅读 · 0 评论 -
HTTP详解
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的转载 2017-03-18 10:24:42 · 177 阅读 · 0 评论 -
iOS汉字转化为拼音
NSString *hanziText = @"我是中国人"; if ([hanziText length]) { NSMutableString *ms = [[NSMutableString alloc] initWithString:hanziText]; if (CFStringTransform((__bridge CFMutableStringRef)m原创 2017-03-18 10:21:55 · 282 阅读 · 0 评论 -
内存分布
伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody — Bill Gates 1981 程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存分配方式 内存分配方式有三种:转载 2017-03-17 18:18:54 · 192 阅读 · 0 评论 -
系统相簿界面,通讯录界面等后标题显示的英文
在ios里面,跳转到系统相簿界面,通讯录界面等后标题显示的英文,关键是手机已经设置显示中文了。纠结半天,最终在 info.plist设置一下轻松解决问题了:info.plist里面添加Localized resources can be mixed YES原创 2017-03-17 17:50:49 · 431 阅读 · 0 评论 -
iOS获取设备型号和App版本号等信息
iOS开发过程中,有时候为了更好的用户体验或者为了bug跟踪,可能会需要获取用户的应用信息、系统信息、设备信息。这些信息的获取可以根据不同的设备或者App、系统版本来提供不同的功能或更好的用户体验,或者让开发者能更好的分析用户的问题原因。 1.获取设备名称:NSString *deviceName = [[UIDevice currentDevice] name];2.获取系统版本号:NSStri转载 2017-03-19 20:49:29 · 513 阅读 · 0 评论 -
去掉navigationBar下面的黑线
去掉navigationBar下面的黑线for (UIView *view in self.navigationController.navigationBar.subviews) { if ([view isKindOfClass:NSClassFromString(@"_UIBarBackground")]) { for (UIView *view2 in原创 2017-03-19 20:56:57 · 266 阅读 · 0 评论 -
iOS中常用的快捷键
Alt+N:新文件 Alt+Shift+N:新项目 Alt+O:打开 Alt+S:保存 Alt+Shift+S:另存为 Alt+W:关闭窗口 Alt+Shift+W:关闭文件 Alt+[:左缩进 Alt+]:右缩进 Alt+D:添加书签 Alt+/:注释或取消注释 Ctrl+.:参数提示 Esc:自动提示列表 Alt+Shift+B:编译窗口 Alt+Shift+Y:调试原创 2017-03-16 09:07:51 · 445 阅读 · 0 评论 -
判断程序是不是第一次启动
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"everLaunched"]) { [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"everLaunched"]; [[NSUserDefaults standardUserDefau原创 2017-03-16 09:06:09 · 641 阅读 · 0 评论 -
如何获取手机的ip地址
废话不多说,直接上代码。#import <Foundation/Foundation.h> @interface GetIPAddress : NSObject + (NSString *)deviceIPAdress; @end #import "GetIPAddress.h" #include <ifaddrs.h> #include <arpa/inet.h> @implem转载 2017-03-14 22:02:36 · 2242 阅读 · 0 评论 -
performSelector的原理以及用法
一、performSelector调用和直接调用区别 下面两段代码都在主线程中运行,我们在看别人代码时会发现有时会直接调用,有时会利用performSelector调用,今天看到有人在问这个问题,我便做一下总结, [delegate imageDownloader:self didFinishWithImage:image]; [delegate performSelector:@select转载 2017-03-14 21:51:13 · 343 阅读 · 0 评论 -
Method Swizzling的应用
Runtime消息转发虽然功能强大,但需要我们了解并且能更改对应类的源代码,因为我们需要实现自己的转发逻辑。当我们无法触碰到某个类的源代码,却想更改这个类某个方法的实现时,该怎么办呢?可能继承类并重写方法是一种想法,但是有时无法达到目的。这里介绍的是 Method Swizzling ,它通过重新映射方法对应的实现来达到“偷天换日”的目的。跟消息转发相比,Method Swizzling 的做法更为原创 2017-03-14 21:37:53 · 223 阅读 · 0 评论