![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UIKit
文章平均质量分 63
MeteoriteMan
iOS开发者
展开
-
iOS系统分享
Social.framework有如下几个比较重要的类SLComposeViewControlleriOS 6 - iOS 11(Account是iOS 11移除的)使用的"系统分享"方式说到SLComposeViewController.framework(系统分享)框架.就得提一下Accounts.framework(账号管理).大概是到了iOS11就不支持这种分享方式了(以下是内置(设置里头有的)一些无需安装App的分享渠道)使用方式/// forServiceType:分享的渠道原创 2020-06-06 11:42:39 · 2484 阅读 · 0 评论 -
iOS简单修改转场动画
iOS转场动画注意我的标题,是简单修改转场动画,这个简单是有限的修改.本篇文章的前提是,在不使用delegate的情况下(tabbar.nav.vc的delegate)对于CALayer类.我们可以使用下面这个方法去给CALayer上添加一个动画.- (void)addAnimation:(CAAnimation *)anim forKey:(nullable NSString *)ke...原创 2020-02-26 17:26:01 · 932 阅读 · 0 评论 -
CGRect的一些实用函数
个人觉得,在图形设备里头,宽高< 0没有什么意义.所以下面使用的rect默认为width、height大于等于0CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height);函数值CGRectGetMinX(CGRect rect)xCGRectGetMidX(CGRect rect)(x ...原创 2020-02-07 13:04:08 · 333 阅读 · 1 评论 -
UIAlertView的风险
本篇文章我将会从两个方面来讲UIAlertView的风险-传统的keyWindow的问题一集系统上适配上问题.keyWindow的问题下面从不用UIScene管理window的情况谈起.对于UIApplication中的keyWindow的定义,如下所示This property holds the UIWindow object in the windows array that i...原创 2020-01-20 21:53:38 · 1487 阅读 · 0 评论 -
监听UI控件frame变化的正确姿势
一说到监听.大家可能想到的是addObserve:没错,我想讲的就是observer,但是可能和大家想的有些许不同.用习惯了Masonry.其实也就是苹果的AutoLayout系统.对于一些东西就渐渐的忽略了.比如当你设置center.equto比如self.view的时候.如果转屏.frame会不会改变呢.(假定大小固定的情况下).大家也许觉得x.y可能变化了,那么frame肯定改变了....原创 2019-04-12 00:10:55 · 2582 阅读 · 3 评论 -
通过响应者链去获取当前控制器
响应者链大家应该都知道是什么玩意.苹果文档中对响应者链有如下一段介绍Altering the Responder ChainYou can alter the responder chain by overriding the nextResponder property of your responder objects. When you do this, the next respon...原创 2018-12-11 12:40:31 · 288 阅读 · 0 评论 -
UIButton图片的contentMode(backgroundImage与image)
首先我们要明确一点.UIButton有"两张"图片.backgroundImage和image.一个用于背景(在控件的上面一层)、一个在最上层和文字是同一层级.首先contentMode是UIView对象的属性.然后UIButton的contentMode并不会影响这两个属性.// return title and image views. will always create them i...原创 2018-12-06 13:13:11 · 3325 阅读 · 0 评论 -
iOS11下UITableView侧滑删除详解
说到编辑模式我们一般会用这个.更老的基本上没人会用到了.所以就不提了// Use -tableView:trailingSwipeActionsConfigurationForRowAtIndexPath: instead of this method, which will be deprecated in a future release.// This method supersedes...原创 2018-11-05 19:08:31 · 4042 阅读 · 0 评论 -
关于iOS12.1UITabbar偏离位置的问题
由于没有出了新版本的就升级的&quot;好习惯&quot;.在12.1出了几天后才发现有返回首页出现tabbar(我们页面是nav的children&amp;gt;1的时候没tabbar)的时候Item会偏离位置.这个感觉是tabbar的问题就去找了半天.苹果恶心的没有告诉我iOS12.1的改动(除非是大版本的改动会在WWDC提到).那没办法了.只得一个API.一个API的尝试.后来发现把默认为YES的translucen...原创 2018-11-06 11:29:56 · 1287 阅读 · 2 评论 -
禁止UITextField、UITextView、UIWebView、WKWebView的UIMenuController弹出选择框
上一篇文章我们讲述了UIMenuController的使用.这一篇讲一讲原生的屏蔽.对于UITextField、UITextView、UIWebView这三个.可以直接子类化,或者是分类,然后在.m里面重写- (BOOL)canPerformAction:(SEL)action withSender:(id)sender然后返回NO即可.- (BOOL)canPerformAction:(SE...原创 2018-10-08 10:01:53 · 1338 阅读 · 0 评论 -
UIMenuController详解
首先,下面这个控件咱们应该在UITextField、UITextView、UIWebView、WKWebView等控件上看到过.这个控件叫UIMenuController.看着这个名字大家第一想法是不是UIViewController.其实,这个控件和UIViewController并没有什么关系.NS_CLASS_AVAILABLE_IOS(3_0) __TVOS_PROHIBITED @...原创 2018-10-07 18:41:37 · 4232 阅读 · 2 评论 -
CALayer的"自动布局"
用过CALayer及其子类的都知道这玩意功能特别强大,效果优美,占用内存小等.但是,最恶心的事情就是使用的时候需要算frame…自动布局只支持UIView及其子类.那么.我们怎么让Layer有这个特性呢.首先,我们要知道1.UIView上头有一个Layer.2.Layer添加的方式类似UIView:`layer addSubLayer`.3.一个Application至少有一个UIVi...原创 2018-10-03 04:39:55 · 1699 阅读 · 0 评论 -
reloadData立即执行
大家知道reloadData会使控件(UICollectionView、UITableView刷新数据源,代理等).一般没人会注意到reloadData是异步的.因为我有仿网易新闻加载逻辑的需求.特意的看了看.在reload后调用完成滚动详情见:UIScrollView及其子类停止滚动的监测然而我在代理里面算了当前显示cell(item)的indexPath之后使用cellForItem...原创 2018-09-26 16:27:56 · 2636 阅读 · 0 评论 -
UIEdgeInsets
UIEdgeInsetsMake(&amp;lt;#CGFloat top#&amp;gt;, &amp;lt;#CGFloat left#&amp;gt;, &amp;lt;#CGFloat bottom#&amp;gt;, &amp;lt;#CGFloat right#&amp;gt;)UIEdgeInsets就是长上面的样子的.有四个属性.对应上左下右.原创 2018-09-04 12:51:14 · 819 阅读 · 0 评论 -
userInteractionEnabled与enabled的区别
首先.userInteractionEnabled是UIView类中的一个属性.enabled是UIControl类中的一个属性.UIControl继承与UIView.在响应者链中有这么一段描述UIKit uses view-based hit-testing to determine where touch events occur. Specifically, UIKit compa...原创 2018-12-24 11:49:39 · 1996 阅读 · 0 评论 -
设置UICollectionView滑动终止时的停止位置
1.以UICollectionView的父类思考首先,UICollectionView和UITableView都拥有着UIScrollView父类.可以在UIScrollView停止滚动之后"修复"滚动位置.如何检测UIScrollView停止滚动,详见UIScrollView及其子类停止滚动的监测.可以在停止滚动之后修复位置.但是效果不太好.因为UICollectionView滚动不是一...原创 2019-01-04 18:21:20 · 3011 阅读 · 0 评论 -
iOS自定义转场-带交互
上一篇我们讲了iOS自定义转场-无交互.这一篇我们来讲讲iOS自定义转场动画-带交互的情况.0. 交互情况下VC、Nav、Tab都需要遵循的代理需要遵循UIViewControllerInteractiveTransitioning代理.并且实现- (void)startInteractiveTransition:(id <UIViewControllerContextTransi...原创 2019-06-10 21:10:38 · 450 阅读 · 0 评论 -
iOS自定义转场动画-无交互
首先自定义转场得遵循UINavigationControllerDelegate(push、pop转场)、UIViewControllerAnimatedTransitioning(present、dismiss转场).对应到属性就是UIViewController的transitioningDelegate与UINavigationController的delegate.与UITabbarCo...原创 2019-06-10 00:09:11 · 1021 阅读 · 0 评论 -
震动反馈(Tapic-Engine)的使用
UIFeedbackGenerator反馈发生器这个类基本上就是震动反馈(Tapic-Engine)的使用.基本上都知道iPhone-6s以及以后的iOS版本苹果搭载了Tapic-Engine.就是俗称的点哪里哪里"响应",然后震动的一个线性马达.那么,我们能否让他震动呢.在iOS10以上的网易新闻客户端里面大家可以看到这个Tapic-Engine在下拉刷新中的使用.下拉到松手就能刷新的...原创 2019-05-30 21:44:11 · 2896 阅读 · 0 评论 -
UIFontWeight各字宽值
UIFontWeightCGFloatUIFontWeightUltraLight-0.80000001192092896UIFontWeightThin-0.60000002384185791UIFontWeightLight-0.40000000596046448UIFontWeightRegular0UIFontWeightMedium0...原创 2019-05-15 21:04:56 · 2884 阅读 · 0 评论 -
iOS导航栏侧滑手势启用/禁用弃用正确姿势
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated { if (self.viewControllers.count >= 1) { viewController.hidesBottomBarWhenPushed = YES; [s...原创 2019-05-19 10:09:34 · 2291 阅读 · 0 评论 -
UINavigationBar上leftBarButtonItem和返回按钮共存
一般来说,设置了LeftBarButtonItem之后,返回按钮就会消失,有些人可能会使用leftBarButtonItems来完一个骚操作.其实,想设置有leftBarButtonItem的时候存在返回键可以将UINavigationItem的leftItemsSupplementBackButton属性设置为YES即可....原创 2019-05-02 15:20:05 · 1049 阅读 · 0 评论 -
更改UIButton的图片颜色
一般我们创建UIButton的时候都是1. [[UIButton alloc] init];2. [UIButton new];这两种创建方法.比如设计给我们的是一张绿色的图.我们某个页面需要弄成白色的话.又得UI重新设计一下图片给我们.挺麻烦的.查阅文档发现.上面的两种创建方法等同于[UIButton buttonWithType:UIButtonTypeCustom];UIB...原创 2019-05-02 10:46:49 · 6302 阅读 · 0 评论 -
自定义tabbar(适配iPhoneX)
对应GitHubDemo地址 对于iOS系列设备来说.底部的tabbar由于去掉了Home键,底部有一个安全区作为用户的手势交互区(使用一些手势来完成Home键的操作).一些使用UIView去自定义UITabbar的如果想适配iPhoneX的话就需要写1.一个判断设备的宏.2.tabbar高度的宏.我觉得上面的方法太复杂了(比如又来了个iPhoneXX,或者是iPadXX怎么弄,新增...原创 2018-05-11 00:48:59 · 9531 阅读 · 0 评论 -
设置UIScrollView滚动速度.
首先,我们公司的轮播图有点BUG.使用UICollectionView重写之后,发现一个问题.就是.UICollectionView定位需要UICollectionViewFlowLayout类中的下面的方法.- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScr...原创 2019-01-01 17:02:55 · 6628 阅读 · 1 评论 -
改变UITableView编辑状态的选中背景颜色.
下面先来一个默认的UITableViewCell的选中样式: 在不需要有选中状态(无tableView的Edit编辑状态需要选中某个组的时候)*以直接设置UITableViewCell的selectionStyle为None就OK.但是在edit状态的时候selectionStyle如果是None的话.那么讲无法选中选中的话又只有那么几种颜色状态可供选择. 那么,如何去修改...原创 2018-08-14 13:33:53 · 2201 阅读 · 0 评论 -
iOS电池栏颜色设置
首先看一下用得最多的一个方法/// 然后在viewWillAppear里头设置statusBar的Style[[UIApplication sharedApplication] setStatusBarStyle:&lt;#(UIStatusBarStyle)#&gt;] 这种写法应该是大多数人的使用方法.但是这个setStatusBarStyle方法iOS9就过期了...原创 2018-07-26 19:07:06 · 2520 阅读 · 0 评论 -
xib的屏幕适配问题
我们在使用纯代码的时候一般都喜欢写一个setupUI来做譬如切边之类的事情.纯代码一般都不会出现错误.比如我们把一个cell写成了xib.那么他就不会走- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier;这个方法.而走的是- (void)awake...原创 2017-08-12 15:24:17 · 878 阅读 · 0 评论 -
关于UITableView的小技巧
在UITableView中有headView和footerView.这两个比较常用的可以说是UITbleView的组件.但是对于可视化编程来说不是很好用.因为headView和footerView是继承与UIView的,而继承与UIView的控件并不能使用XIB.视图重绘DrawRect也比较麻烦.如果我们直接使用cell就可以用到XIB.这样做屏幕适配之类的就特别方便.觉得XIB适配不好得到控件...原创 2017-08-14 13:34:16 · 182 阅读 · 0 评论 -
关于切圆角的优化
当我们切圆角.比如在复用的cell中的某个控件切圆角.我们会在滑动的时候觉得特别卡.这是由于离屏渲染所造成的.我们可以设置layer属性中的shouldRasterize=YES.在layer设置shouldRasterize=YES之后,会把被光栅化的图层保存成位图并缓存起来,其中圆角或者阴影之类的效果也是直接保存到位图当中,当需要渲染到屏幕上的时候只需要到缓存中去取对应的位图进行显示就行了,加...原创 2017-09-09 15:12:58 · 210 阅读 · 0 评论 -
IOS程序中设置RGB色
我们先创建一个UIImageView对象,并且设置好大小UIImageView *ImageView = [[UIImageViewalloc] init];ImageView.frame =self.view.frame;设置RGB色:[UIColor colorWithRed:<#(CGFloat)#> green:<#(CGFloat)#> blue:<#(CG...原创 2016-12-22 16:58:12 · 525 阅读 · 0 评论 -
当使用masnory布局发现和想象的不一样的时候
有些控件的布局可以说是懒加载.咱们用masnory布局会发现效果和咱们想象的不一样.1.可以尝试换一个控件来相对布局2.可以打个断点.po(如果是控件用 po ,如果不是控件就用p)一下看看是否frame是0.如果是0的话.可以使用[该对象 layoutifneeded]来强制计算一下frame为0的控件.使咱们后面的布局没有问题....原创 2017-01-25 16:49:13 · 245 阅读 · 0 评论 -
通过transfrom来修改位置.大小(缩放).旋转
transfrom是利用线性代数来存放一个控件(或许是图片)的具体信息.(由于可以通过transfrom直接操作控件.所以肯定直接或者间接的存储着点的信息和控件的大小等信息)1.移动.左移右移或者上移下移:CGAffineTransformMakeTranslation(X偏移量, Y偏移量);CGAffineTransformTranslate(在某个transform的基础上-一般为自身, X...原创 2017-01-26 00:04:44 · 4055 阅读 · 1 评论 -
iOS的三种动画
iOS有三种动画.1.头尾式动画(不重要)基本上这些动画都是调用的UIView的方法.[UIView beginAnimations:nil context:nil];//准备开始动画[UIView setAnimationDuration:5];//设置时间[UIView commitAnimations];//提交动画(真正开始做动画)alpha = 0; // 透明度 取值范围 0 - 1(...原创 2017-01-26 00:14:10 · 331 阅读 · 0 评论 -
UIScrollView
UIScrollView是一个可以滚动的继承于UIView的控件:如果直接在StoryBoard上面拉上一个UIScrollView控件.就是个这么情况.正常的SB(StoryBoard)的使用方式是:1.先拖上来一个UIScrollView控件.然后设置一下约束:Update Frames那里选择Item of New Constraints主要是为了图省事.2.注意.我们这里的顶部是相对于最上...原创 2017-02-03 00:28:44 · 374 阅读 · 0 评论 -
UITableView和UITableViewCell
UITableView为继承与UIScrollView的一个控件.以下是UITableView的头文件://// UITableView.h// UIKit//// Copyright (c) 2005-2016 Apple Inc. All rights reserved.//#import <Foundation/Foundation.h>#import <CoreGr...原创 2017-02-03 12:59:07 · 452 阅读 · 0 评论 -
UINavigationController的侧滑返回遇到的坑
如果我们的控制器是由UINavigationController管理的话,我们就需要注意一下导航栏的侧滑返回. 一般来来说正常的页面布局不会出现侧滑返回的问题.首先,我先说明一下,实现这个需求有很多种方法. 就比如说上次在群里看到一个哥们不用push而是用的modal.然后自定义modal的转场动画. 然后侧滑返回用的是手势.还有禁止手势上下移动什么的.还需要开关手...原创 2017-07-28 16:06:20 · 2586 阅读 · 0 评论 -
Popover前世今生
首先.大家使用iOS系统的时候肯定看到过类似于下图这样的UI效果,那么.这个效果叫啥嘞. 这这种效果叫popover.表现形式为一个小尖尖.再加上一个看上去是View的东东. 但是,其实,这个东西不是View,而是一个Controller.比起alert之类的东西.popover可以明确的提醒用户,交互是在哪里发生的,就是靠这个小尖尖.有些软件上的”popover”...原创 2018-03-05 11:19:55 · 369 阅读 · 0 评论 -
UITableView的cell的分割线的问题
在UITableView中有一个separatorStyle属性来设置分割线的样式.separatorStyle里面有三个枚举值.第一个枚举值UITableViewCellSeparatorStyleNone设置了之后tableView控件就没有线了.第二个枚举值UITableViewCellSeparatorStyleSingleLine设置了之后不论没有没数据的地方都有了线.第三个枚举值UIT...原创 2017-08-11 11:52:08 · 635 阅读 · 0 评论 -
加载plist和json在UILabel换行需求中的区别
之前碰到过一个需求,就是label的文字需要换行. 可以在<label.text = @"XXXX">的xxx中可以使用"\n"换行符来完成换行的操作 1.我们要设置label的lineBreakMode断点模式 label.lineBreakMode = UILineBreakModeCharacterWrap; 2.然后要设置一下label的...原创 2017-07-29 10:12:58 · 477 阅读 · 0 评论