笔记
Hg浩
人活着,就是为了在死之前,做够足够多的事,为了拥有足够多的事来回忆
展开
-
iOS点击UITableView的cell,弹出UIAlertController有时会出现延迟
这里出现延迟,是由于tableViewCell的selectionStyle设成了UITableViewCellSelectionStyleNone,将selectionStyle设成default就不会出现延迟了,延迟应该与界面本身没有发生UI变化有关...我猜测是由于runloop没有收到更新UI的事件,此时创建UIWindow,然后推出AlertController,runloop不原创 2015-12-09 18:16:03 · 3256 阅读 · 2 评论 -
定位uncaught exception类型的崩溃所在行数
im loo -a +目标地址原创 2016-08-22 14:39:52 · 718 阅读 · 0 评论 -
iOS 深拷贝
NSArray* trueDeepCopyArray = [NSKeyedUnarchiver unarchiveObjectWithData: [NSKeyedArchiver archivedDataWithRootObject:oldArray]];利用序列化和反序列化实现完全深拷贝,其中注意点是集合中的每一个对象都要遵循NSCoding协议原创 2016-08-10 15:52:36 · 380 阅读 · 0 评论 -
UICollectionView 的一些坑
UICollectionView的初始化方法只有initWithFrame,所以不能根据reuseIdentifier区分类型。UICollectionView的cell,必须注册重用,不能直接设置cell返回UICollectionView.contentSize可能为错值注意cell重用产生的坑原创 2016-08-10 15:59:38 · 572 阅读 · 0 评论 -
关于iOS Appearance的设置
UINavigationBar.appearance.tintColor 控制默认navigationBarItem上的文字的颜色, UIBarButtonItem.appearance.tintColor 控制由图片生成的BarItem的颜色, self.navigationBar.tintColor 利用controller的navigationBar的tintColor属性,可以修改不同c原创 2016-09-13 18:32:50 · 1364 阅读 · 0 评论 -
开发笔记
对于后台新加的基础字段,前端更新数据库时要考虑添加默认值,防止老数据没有这个字段赋值为nil原创 2016-09-19 11:36:54 · 260 阅读 · 0 评论 -
iOS10 新增语音转文字功能(Speech)
经典三段论SFSpeechRecognizer *recognizer = [[SFSpeechRecognizer alloc] initWithLocale:[NSLocale localeWithLocaleIdentifier:@"zh_CN"]]; NSURL *aURL = [NSURL fileURLWithPath:url]; SFSpeechURLRecogniti原创 2016-10-10 16:48:19 · 2061 阅读 · 0 评论 -
iOS10后,部分自动布局(AutoLayout)布局出错的解决方法
问题的根源在于代码中用到了layoutIfNeeded这个方法, 从官方的Release Notes中,看出iOS10应该是更改了layoutIfNeeded的时机(说是修改了以前的release版本的bug,bug的内容是说:调用layoutIfNeeded的时候,不期望改变view的位置……)。 解决方法官方也给出了,就是调用[superView layoutIfNeeded],测试过,应该原创 2016-10-10 17:11:44 · 3174 阅读 · 0 评论 -
计算在UITableView中的UICollectionView的高度(自适应)(iOS10可用)
经过测试,单纯的写好UICollectionView的约束,然后reloadData,并不能让UICollectionView自适应,所以还要加点东西。关键点:获取UICollectionView的高度。 在tableViewCell中更新collectionView的数据源,然后[collectionView reloadData]; 然后利用collectionViewLayout.coll原创 2016-09-26 11:31:57 · 17168 阅读 · 7 评论 -
UITableView footerRefresh后闪烁的问题
发现,有时tableview执行footerRefresh后会产生闪烁,通过录屏发现是最顶部的cell,从底部快速移动到顶部所致(cell的backGroundColor为clearColor),解决方式是把tableview的style,设置为UITableViewStylePlain原创 2016-12-06 17:25:09 · 802 阅读 · 0 评论 -
UIWindow相关
说道UIWindow,所有人都不会陌生,我们的第一个可视化iOS程序的显示,一定会用到UIWindow。 它就在这,谁也删不了。每一个iOS应用都至少有一个window: 1.它包含您应用的可见内容 2.它在将触摸事件传递到您的视图和其他应用程序对象中起到关键作用 3.它处理您的视图控制器的方向改变 以上3句摘抄字官方文档。除了是app的根视图以外,UIWindow还有很多用处,比如:原创 2016-12-20 16:55:15 · 338 阅读 · 0 评论 -
通用链接universal links中遇到的问题
Universal Links 现在已经在不少的app中被使用,未来我认为,几乎全部的iOS应用都会使用此功能。在微信中直接呼起app,多稳,毫无违和感。关于universal links网上教程一篇篇的,大神们写的都很好,我也是参考其中的一些,才实现了这个功能,其中最好的教程当属wwdc上的视频了,由于英语水平有限,我对外语的教程是尽量拒绝的(因为没有字幕),但是看了之后才发现,真的是简单易懂。而原创 2017-02-20 10:49:08 · 12230 阅读 · 1 评论 -
launchOptions利用userActivity呼起app设置
黑科技: 当不确定launchOptions是什么的时候,可以通过alert输出,然后查看!着重记一下userActivity呼起时,如何获取相关参数if (NSDictionary *userActivityDict = [launchOptions objectForKey:UIApplicationLaunchOptionsUserActivityDictionaryKey]) {原创 2017-02-22 17:51:34 · 1631 阅读 · 0 评论 -
自动布局时高度算不准的问题
一般,自动布局自适应高度的控件,算不准高度的原因:时机问题。一般系统算高度的时候,应该是依赖了控件的宽度。 而添加了约束的控件,只有当view显示出来的时候,才会根据约束改变frame。 所以系统算高度的时候,约束修改的frame,并没有生效。所以解决问题的办法,就是在创建view的时候,设置一个frame的宽度给他,让他能知道这个控件的宽度,解决上诉的时机问题。原创 2017-05-02 13:26:58 · 673 阅读 · 0 评论 -
swift 懒加载
lazy var nameLb :UILabel = { let nameLb = UILabel.init() nameLb.translatesAutoresizingMaskIntoConstraints = false nameLb.font = UIFont.systemFont(ofSize: 12) nameLb.text原创 2017-07-12 17:19:39 · 345 阅读 · 0 评论 -
swift 自动布局(iOS9以后)
iconImageView.topAnchor.constraint(equalTo: self.topAnchor, constant: 13).isActive = true iconImageView.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true iconImageVi原创 2017-07-12 17:20:43 · 1246 阅读 · 0 评论 -
UITableView的一个小坑
- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated;这个函数,调用的是,UIScrollView的- (void)setContentOffset:(CGPoint)conte原创 2016-09-12 11:36:55 · 325 阅读 · 0 评论 -
利用masonry添加约束的控件, 添加部分圆角
首先添加圆角的方式并没有变:- (void)setCornerOnTop{ UIBezierPath *maskPath; maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:(UIRectCorne原创 2016-03-07 13:20:13 · 8181 阅读 · 0 评论 -
关于NSOperationQueue的cancel
对于NSOperationQueue,只有add到NSOperationQueue的NSOperation才能够执行, 关于cancel,NSOperation的cancel 并不是立即取消掉,而是过一会, 最重要的是无论是NSOperation的cancel还是NSOperationQueue的cancelAllOperations,都不会停止正在执行的operation,只能取消在队列中等待原创 2016-04-21 17:22:34 · 1582 阅读 · 0 评论 -
利用AFNetworking上传图片
利用AFNetworking可以很容易的上传图片,下面备上代码以备不时之需,比如上传url为:http://…/accountmanagement/UploadFile 参数为:{“id”:”…..”,”file”:”…”}- (void)uploadImageWithName:(NSString *)name image:(UIImage *)image { AFHTTPRequestO原创 2015-12-10 16:10:25 · 597 阅读 · 0 评论 -
实现UITableView上View的上拉隐藏下拉出现效果(1)(category)
首先分析此动画实现的关键:当这样一个需求摆在我眼前的时候,我首先想到tableView的delegate中包含了scrollView的delegate,那我只需要在scrollViewDidScroll:(UIScrollView *)scrollView中判断偏移量,然后再根据偏移量完成动画就可以了。但这里会产生问题,假如我本身的tableView还需要在scrollViewDidScrol原创 2015-11-24 18:50:24 · 1889 阅读 · 0 评论 -
Swift 限制UITextField字数的方法
首先利用UITextField的addTarget方法,监听UITextField的文字变化:textField.addTarget(self, action: "textDidChange:", forControlEvents: UIControlEvents.EditingChanged)然后实现textDidChange:方法,这里直接判断text的长度,在输入中文时会有坑,所以判读输入格式原创 2015-12-09 14:34:20 · 6349 阅读 · 0 评论 -
Swift 利用UIScrollView和两个UIImageView实现图片轮滚
现在基本所有的app都带有图片轮滚的广告页面或者推荐页面,图片轮滚实现的方式有很多种: 最简单的一种,利用scrollView在前后各加一个辅助的imageView过渡,然后更改scrollView的contentOffset实现图片轮滚。第二种,利用三个imageView,add到scrollView上,一直显示最中间的imageView,每次滚动后,更改scrollView的contentOf原创 2015-12-11 18:17:40 · 1134 阅读 · 0 评论 -
实现UITableView上View的上拉隐藏下拉出现效果(2)
想了想,还是不上代码了,直接说思路。在这里我们利用kvo观察tableView的contentOffset,首先判断何时tableView应该具备这个属性,如果tableView的contentInset没有一个屏幕的高度,那我们的这个动画也就没有必要显示了,所以tableView的contentOffset应该大于tableView的content距上边的距离,此时才可以具备这个属性。在原创 2015-11-25 17:07:33 · 1500 阅读 · 0 评论 -
从view上截取部分图片
代码片中bg是一个imageView,UIGraphicsBeginImageContextWithOptions(bg.frame.size, YES, 1.0);//yes表示透明,1.0表示不进行缩放 [bg.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *bgImg = UIGraphicsGetI原创 2015-12-28 11:45:04 · 608 阅读 · 0 评论 -
给UILabel局部文字添加颜色
如果是整体加颜色的话,可以直接用NSAttributedString *attStr = [[NSAttributedString alloc] initWithString:str attributes:@{NSFontAttributeName:font,NSForegroundColorAttributeName:color}];然后调用UILabel的 setAttributedTex原创 2015-11-26 18:26:34 · 1708 阅读 · 0 评论 -
CATextLayer设置字体的正确姿势
深坑CATextLayer *textLayer = [CATextLayer layer]; textLayer.frame = CGRectMake(20, 50, 60, 78); //textLayer.font = (__bridge CFTypeRef _Nullable)([UIFont fontWithName:@"HelveticaNeue-Italic" size原创 2016-01-15 16:33:20 · 1520 阅读 · 0 评论 -
利用UITextField自定义搜索栏,实现中文输入过程中字母的搜索功能
当我们需要搜索功能时,我们首先想到的肯定是searchBar(当然我还只是个新手),但当我们需要在中文输入过程中搜索字母的时候时,searchBar就不好用了,只有当文字展示在searchBar上时,才会触发textDidChange的代理方法。 这时可以用UITextField自定义搜索栏,来实现我们的需求。 首先,先来实现searchBar成为第一响应者时搜索图标从中心移动到头部的动画:se原创 2015-11-27 17:21:47 · 3405 阅读 · 0 评论 -
NavigationController推出下一控制器同时pop自己本身
在UINavigationController中,经常会遇到在push下一级控制器时pop自己本身,这样在下一控制器pop时,就会直接回到上上级的控制器.UIViewController *newVC = [[UIViewController alloc] init];NSMutableArray *viewControllers = [NSMutableArray arrayWithArray:原创 2015-12-30 10:12:28 · 479 阅读 · 0 评论 -
超简单的UITableView下拉放大的动画
很多主流的app都会有这个动画,然后用最简单的思想实现了一下,就是按照tableView的contentOffset,直接进行缩放,效果还不错.#import "ViewController.h"#import <Masonry/Masonry.h>@interface ViewController ()<UITableViewDataSource, UITableViewDelegate>@p原创 2015-12-31 12:29:51 · 923 阅读 · 0 评论 -
给UILabel中的文字加删除线
UIKIT_EXTERN NSString * const NSStrikethroughStyleAttributeName NS_AVAILABLE(10_0, 6_0); // NSNumber containing integer, default 0: no strikethrough//官方注释,NSNumber,默认值是0,不显示删除线增加删除线的方法:UILabel *label原创 2016-01-06 14:49:48 · 974 阅读 · 0 评论 -
仿(现QQ)首页侧滑(抽屉)效果
先来一波效果 实现的原理是: 首先主控制器的view, 加了左控制器和根控制器的view, 方便定制这两个控制器,然后把左侧控制器的位置定到偏左侧,以便实现左侧控制器的一个递进出现的效果. 下面就是手势和动画: 一个panGesture,加到主控制器view上,translationInView:获得每次手势的偏移量,调整主控制器和左侧控制器view的位置,在pan.state == UIG原创 2016-01-26 11:21:41 · 688 阅读 · 0 评论 -
UIButton文字在左图片在右、空心带边框
- (void)setImageOnRightWithImage:(UIImage *)image forState:(UIControlState)state{ [self setImage:image forState:state]; NSAttributedString *title = [[self titleForState:state] length] > 0 ? [[原创 2016-03-29 16:36:08 · 684 阅读 · 0 评论 -
Git 使用心得
从本地新建仓库: cd 到想要创建仓库的文件夹 git init git remote add origin 加远程仓库地址 git add . git commit -m ” git push origin master(分支)从远程仓库创建: cd 到想要创建仓库的文件夹 git clone 加远程仓库地址修改commit: git gui合并commit: git reb原创 2016-01-29 16:17:12 · 346 阅读 · 0 评论 -
tableViewCell 自适应行高的坑
在cell利用layout布局时,可以利用[self.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height来获得约束后的contentView的高度,但前提是cell.bounds = UIScreen.mainScreen.bounds;在iOS7下,如果存在cell高度随用户操作变化的情况,需在原创 2016-03-19 16:45:41 · 1133 阅读 · 0 评论 -
iOS10 UICollectionView不调用cellForItemAtIndexPath
在iOS10上,将vc的automaticallyAdjustsScrollViewInsets属性置为NO原创 2018-01-03 15:40:42 · 4460 阅读 · 0 评论