![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS
chenyingsunny
这个作者很懒,什么都没留下…
展开
-
消息转发第一步resolveInstanceMethod返回YES or NO?
不少初学runtime的同学都被这张图(侵删)有点误导了,认为resolveInstanceMethod返回NO才接着走后面的转发流程,而返回YES就停止转发了,其实如果重写的resolveInstanceMethod什么也不做,只是返回YES也会接着走后面的转发流程。这个返回值对于消息转发流程没有任何意义,从runtime的源码来看这个返回值只和debug的信息相关。从源码可以看到,不管...原创 2020-04-07 16:23:17 · 2688 阅读 · 0 评论 -
UILongpressGestureRecognizer,长按之后可以随意在当前view和其父View上移动的问题
不知道你有没有注意到,给一个UIButton添加一个长按手势识别:UILongpressGestureRecognizer,当触发长按之后,你可以随意在这个UIButton的父View上移动手指,也不会停止长按,假如整个屏幕都是UIButton的父View,那么只要你触发了长按,然后不松手就可以随意在整个屏幕上移动,知道抬起手指,这样我觉得很奇怪,明明是给UIButton添加的长按手势,为什么手指原创 2013-12-20 14:28:55 · 5528 阅读 · 0 评论 -
UIButton on the UIScrollView highlighted delayed
最近做项目遇见一个问题:UIScrollView上有许多UIButton,要实现既能点击UIButton,又能滑动UIScrollView,这个实现没有问题,不需要做额外的touch管理,UIScrollView能识别是点击的UIButton还是滑动本身,但是有一个效果上的问题,就是点击UIButton时间短的话,不会高亮,但是确实是触发点击了,这样就造成了假象,给人一种UIButton没有被点击原创 2013-12-18 12:40:53 · 3204 阅读 · 2 评论 -
保持UIButton高亮状态
有一些情景,我们需要保持Button的高亮状态,下次点击再消失.比如一些开关控制,打开闪光灯之类。我的第一反映是在UIButton的事件中直接将UIButton的highlighted属性设为真,如下:123-(void) onButtonClick:(id)sender{ [sender setHighlighted:YES];}转载 2013-12-12 09:38:56 · 4608 阅读 · 1 评论 -
实现UITableView的reloadData完成之后做一些操作
要想实现在reload之后弹出alertView,或者滚动到特定一行, 也许你会这么写[_tableView reloadData];[_tableView scrollToRowAtIndexPath:path atScrollPosition:UITableViewScrollPositionTop animated];看似没问题,但是滚动没起作用,因为reloadData是立即返回的,不会原创 2016-11-29 11:38:19 · 5310 阅读 · 0 评论 -
Xcode修改项目名称
1、编辑项目功能的名称,编辑,回车保存,Xcode会弹出提示:Rename project content items? 点击Rename,之后点击OK。2、修改项目文件夹的名称,在finder中修改名称之后,选中文件,在Xcode的Identity and Type中修改name和Location,点击Location右下角的文件图标,修改文件关联的物理路径。3、修改Building Settin原创 2017-03-07 16:44:01 · 2252 阅读 · 0 评论 -
iOS企业版应用,Provisioning Profile文件即将过期怎么办?
不要慌,很简单,打开苹果开发者Account管理页面,找到即将过期的Provisioning Profile,Edit——>Generate,下载更新的Provisioning Profile文件,重新打包即可。原创 2017-04-12 16:53:08 · 8999 阅读 · 0 评论 -
证书过期,影响App Store已经上架的应用吗?
不影响!已经安装的可以正常使用,也还可以从App Store下载。(除非你的开发者账号过期了,那得续费了) 过期的话,直接revork过期的证书,然后重新生成证书和Provisioning Profile文件,打包重新上架即可!原创 2017-04-12 17:01:56 · 12522 阅读 · 1 评论 -
You may need to configure your browser or application to trust the Charles Root Certificate.
Charles 抓包报以下错误: You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.解决方法: iPhone,设置–>通用–>关于本机–>证书信任设置–>打开信任开关参考链接:https:/原创 2017-05-27 16:55:08 · 21384 阅读 · 0 评论 -
限定二维码扫描范围
使用iOS原生的二维码扫描,如何限定扫描范围,你可能已经知道,通过设定AVCaptureMetadataOutput的rectOfInterest来限定范围,对,就是这个属性。 The value of this property is a CGRect that determines the receiver’s rectangle of interest for each frame of原创 2017-06-19 17:14:22 · 1543 阅读 · 0 评论 -
如何使UIButton中的imageview旋转
很简单: [UIViewbeginAnimations:@"rotate"context:nil]; [UIViewsetAnimationDuration:.25f]; if(CGAffineTransformEqualToTransform(_cityButton.imageView.transform,CGAffineTransfor原创 2014-12-24 15:20:16 · 5097 阅读 · 0 评论 -
UIButton AutoLayout 宽度动态计算
让Button和Label一样,宽度动态计算。UIButton *button = [[UIButton alloc] init];[button setTitle:@"宽度动态确定的按钮" forState: UIControlStateNormal];[button setTitle:@"宽度动态确定的按钮" forState: UIControlStateHighlighted];...原创 2018-03-27 11:21:00 · 1849 阅读 · 0 评论 -
iOS 一键返回App首页功能
从App的rootViewController开始,找到所有presentedController,然后逆序dismiss这些Controller,最后pop to rootViewController就可以了。参考这个思路可以做一些其他非常规页面跳转。- (void)backToHomePage{ UIWindow *window = [(AppDelegate *)[UIAppl...原创 2019-01-09 17:59:08 · 2134 阅读 · 0 评论 -
collectionView scroll to section header perfectly
collectionView添加section header之后,scrollToItem方法表现不好,滚动之后section的第一行总是露出半截;用setContentOffset来实现滚动,对于最后一个section,如果不满一屏,就会很尴尬的卡在顶部,一滑动collectionView,这个section就会掉下来,效果不好,最终用scrollRectToVisible完美解决,如下:g...原创 2019-07-17 17:57:23 · 520 阅读 · 0 评论 -
iOS 怎样实现最多保留n位小数
NSNumberFormatterNSNumberFormatterDecimalStylegroupingSeparator原创 2016-08-08 14:29:38 · 1882 阅读 · 0 评论 -
Undefined symbols for architecture armv*
升级了Xcode7.3,结果工程编译报错, Undefined symbols for architecture armv7…… 查了好多资料,试了好多方法不起作用,最后想到删除一下 Derived Data,结果真好了,内牛满面!打开Window->Projects,点击delete即可。原创 2016-07-07 17:25:37 · 387 阅读 · 0 评论 -
ScrollView嵌套TableView,左划删除手势失效解决方案
可以左右滑动的ScrollView 中嵌套了3个TableView,你会发现TableView的左划删除手势失效了,如何解决呢?自定义一个ScrollView,或者扩展,实现UIGestureRecognizerDelegate 中下面的方法,判断手势的view的superView是不是UITableView即可!- (BOOL)gestureRecognizer:(UIGestureRecogni原创 2016-07-27 16:15:06 · 4207 阅读 · 0 评论 -
xcode中获取js文件的路径
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"click" ofType:@"js"];理论上这样是应该能获取click.js的路径的,但是返回的确是null。解决方法是:项目的TARGETS-->Build Phases在Compile Sources中 ,去掉你的js文件在Copy Bundle原创 2014-01-10 09:59:27 · 1150 阅读 · 0 评论 -
ios中html加载本地图片的路径转换问题
NSString *pathstr = [[NSBundle mainBundle] pathForResource:@"IMG_NAVIGATIONBAR" ofType:@"png"];在html中直接用上面的路径的不行的,html找不见那个图片,要对路径进行转换成html识别的才行。下面就是转换方法:pathstr = [pathstr stringByReplacingOccurr原创 2014-01-10 10:08:34 · 2706 阅读 · 0 评论 -
UIWebView加载HTML,如何使网页中的图片可点击?
正常情况下,UIWebView中的内容是不能操作的(除了copy之类的),当然图片更不能操作,但是能不能实现点击图片来做一些其他处理呢?比如点击图片,跳转到单独显示该图片的页面,答案是肯定的,而且相当简单!这里用到了javascript。第一步:UIWebView 加载要显示的html,可来自网络,也可来自本地。[_webView loadHTMLString:htmlString bas原创 2014-04-16 11:15:50 · 4074 阅读 · 0 评论 -
IB中,如何快速将一些组件整体放入或移出一个view(或Scrollview)中
比如有12个按钮,你可能刚开始做布局的时候直接放在xib根view中,后来由于项目需求,发现把他们放在一个view中好管理,也许你会拖进一个view来,然后把12个控件选中,拖到新的view中,结果就如下图,所有的按钮就到view的中心来了,之后还得一个一个手动重新布局定位。布局简单的还好,要是复杂的话就呵呵了。当然,xCode有办法,而且很简单,做法如下:选中这12个按钮(在outlet原创 2014-04-04 14:42:23 · 1019 阅读 · 0 评论 -
如何NSLog Integer类型,帮你消除warning
NSInteger i = 42;NSLog(@”%d”,i);也许之前你都是这么NSLog Integer类型的,但是随着Xcode版本和iOS版本的不断升级,你会发现Xcode对此会出警告,尤其你将BuildConfiguration设置成Release后,运行时警告会更多。这是因为苹果最近发布的产品都是64位的了,而NSLog(@”%d”)是Signed32-bit integer原创 2014-04-04 14:49:52 · 3166 阅读 · 0 评论 -
改变模态弹窗的大小
以UIModalPresenttationFormSheet方式弹出模态窗口,你会发现不管你的viewController多大,弹出来的都是固定大小,这就是UIModalPresenttationFormSheet的作用,将你的view大小固定了。难道不能改变吗?当然能,做法就是:在调用presentViewController方法之后,再设置目标viewController的大小:原创 2014-04-04 16:35:06 · 2251 阅读 · 0 评论 -
用autolayout如何在横竖屏切换情况下改变控件的位置
在IB中,你用的autolayout来设置控件的位置和大小,你有一个需求,有一个imageView,水平居中,竖屏时距离top 280,但横屏时只有180,需要往上移一下。这怎么实现呢,好像在IB中没法设置他的动态距离吧?(如果哪位知道,请告诉我)IB中不能设置,只好在代码中设置了。因为每次转屏时都会调用viewWillLayoutSubviews,所以在这个方法里设置就可以,具体方法是:原创 2014-04-04 17:47:34 · 2587 阅读 · 0 评论 -
模态弹窗,点击黑色半透明区域消失
点击黑色半透明区域让模态弹窗消失,很简单,给模态窗口的加一个手势就行了,我的模态窗口是一个viewController,大家可以灵活变通,道理都一样。在viewDidAppear(viewWillAppear也行,不能在viewDidLoad中)中,给window加一个tap手势监听。注意一定是给window加,因为self.view只是模态窗口的那部分,不包括黑色半透明区域。我将recogn原创 2014-04-04 15:48:14 · 1786 阅读 · 0 评论 -
iOS代码方式退出应用
虽然官方不建议代码中退出程序,但是你如果有需求,还是有办法滴![[UIApplication sharedApplication]performSelector:@selector(suspend)];exit(0);这样的效果是既有按home键的效果,也实现了退出程序的要求。当然你也可以在exit(0)之前做一些保存信息之类的操作。原创 2014-04-24 10:43:23 · 862 阅读 · 0 评论 -
给UIColloectionViewCell设置点击效果,解决点击效果错位的问题
如何给UIColloectionViewCell设置点击效果,本以为像全局设置UITableViewCell选中的颜色一样,这样写: UIView *backgroundView = [[UIViewalloc] init]; backgroundView.backgroundColor = [UIColorcolorWithRed:0xe6/255.0green:原创 2016-02-24 16:25:30 · 2168 阅读 · 0 评论 -
多个Target的podfile文件配置
多个Target的podfile文件配置遇到The dependency * is not used in any concrete target这种错误,是因为没有在podfile文件中设置target,如果工程只有一个targettarget 'Target' do pod 'AFNetworking', '~> 2.3.1'end如果是多个target:abstract_target原创 2016-06-20 16:38:14 · 3426 阅读 · 0 评论 -
UIScrollView分页并显示上下页,像mobile safari tab那样
如何实现想safari(IOS7之前的)编辑模式中那样的效果,既能翻页,还能看到上下页,如下图:一般的我们都会想到改变UIScrollView翻页的大小不就行了吗?但是我查了一些资料,UIScrollView默认的一页就是UIScrollView的大小,也可以自定义,但是貌似比较复杂,对于我这种菜鸟级的还有点“奢侈”。既然不能改变一页的大小,那就把UIScrollView设置成你要求的原创 2013-12-19 15:42:26 · 2146 阅读 · 0 评论