iOS_UIKit
文章平均质量分 59
王中尧
工作联系:coderzywang@yeah.net
展开
-
iOS 【UIKit-关于 UIImageView contentMode 属性设置无效】
关于 UIImageView contentMode 属性设置无效问题解决。原创 2016-07-12 21:35:00 · 3283 阅读 · 0 评论 -
iOS 【UIKit-UITextField 退出键盘的几种方式/监听方式】
在众多UI控件中,UITextField是比较特殊的控件,因为UITextField既可以通过 addTarget 添加 监听方法 进行监听,也可以通过 delegate 实现代理方法 进行监听。UITextField 退出键盘的几种方式1、[self.textField endEditing:YES]; // 退出当前textField的键盘2、[self.textField原创 2016-06-10 00:01:51 · 1066 阅读 · 0 评论 -
iOS 【UIKit-UIPageControl 两个属性】
_currentPageImage_pageImage这两个属性可以更改小圆点为自己的设置的图片,但是这两个属性已经在Xcode 6.4 后隐藏。虽然我们点进去看不到这两个属性,但我们可以通过KVC对这两个私有属性进行设置。注意:这两个属性名前面都有一个下划线,设置的时候一定要带上原创 2016-06-09 23:58:33 · 538 阅读 · 0 评论 -
iOS 【UIKit-Interface Builder(面试)】
Interface Builder(IB)是MAC OS X平台下用于设计和测试用户界面(GUI)的应用程序(非开源)。为了生成GUI,IB并不是必需的,实际上Mac OS X下所有的用户界面元素都可以使用代码直接生成;但IB能够使开发者简单快捷的开发出符合Mac OS X human-interface guidelines的GUI。通常你只需要通过简单的拖拽(drag-n-drop)操作来原创 2016-06-04 11:31:28 · 583 阅读 · 0 评论 -
iOS 【UIKit-UITableViewCell的重用方式&static】
(1)方法一:一般方法重用原理:当滚动列表时,部分UITableViewCell会移出窗口,UITableView会将窗口外的UITableViewCell放入一个对象池中,等待重用。当UITableView要求dataSource返回UITableViewCell时,dataSource会先查看这个对象池,如果池中有未使用的UITableViewCell,dataSource会用新的数据原创 2016-06-04 11:27:32 · 1110 阅读 · 0 评论 -
iOS 【UIKit-转换坐标系(2)】
先看这样一段代码:#import "ViewController.h"@interface ViewController ()// 声明两个属性的原因在于我们要在下面很多处地方用到,不声明的话只能作为一个局部变量使用,使用完就释放了,所以不合适@property (nonatomic, strong) UIView *blue;@property (nonatomic, stron原创 2016-02-12 17:39:15 · 971 阅读 · 0 评论 -
iOS 【UIKit-iOS常用控件尺寸大集合 】
元素控件尺寸(pts)Window(含状态栏)320 x 480Status Bar的高度20Navigation Bar的高度44含Prompt的Navigation Bar的高度74Navigation Bar的图标20×20(透明的png)T转载 2016-02-19 22:15:21 · 1553 阅读 · 0 评论 -
iOS 【UIKit-UIButton中的三个EdgeInsets属性(切图)】
一般来说,EdgeInsets属性是用来设置一个Button中的图片和文字之间间距的(切图)。下面列举出来三个属性进行设置: // 下面三个属性都是用来在Button内部切图用的,top、left、bottom、right是逆时针来看的四个方位,在这四个方位上设置数值,内部某某控件会被切掉,这部分切掉的区域是不能显示内容的。控件也就相应的被挤压显示 // content原创 2016-02-18 17:49:38 · 1211 阅读 · 0 评论 -
iOS 【UIKit-UINavigationItem 定制导航栏中元素的信息】
首先介绍几个定义:UINavigationController —— 导航控制器(本质是UIViewController)UINavigationBar —— 导航栏(本质是UIView)UINavigationItem —— 包含了navigationBar(导航栏)中的所有信息(本质是NSObject)UIBarButtonItem —— 专门用来放在 UIToolbar原创 2015-12-07 11:34:30 · 1260 阅读 · 0 评论 -
iOS 【对iOS中控制器view的理解 以及 view仍在但不显示数据的原因探索】
如果发现:控制器view还在,但是view上面的数据不显示,极大可能是因为管理view的控制器被提前销毁了1、一个控制器的view是可以随意调整尺寸和位置的2、一个控制器的view是可以随意添加到其他view中去的3、如果将一个控制器的view,添加到其他的view中显示,那么要想办法保证其控制器不被销毁4、原则:只要view在,view所在的控制器必须得在,这样才能保证view内转载 2016-02-16 15:41:22 · 1105 阅读 · 0 评论 -
iOS 【UIKit-UIScrollView 无法滚动的原因/两种情况下的弹簧效果】
1、没有设置contentSize或者contentSize的尺寸小于等于该scrollView的尺寸2、scrollView.enable = NO;(仅仅是让scrollView不能滚动)3、userInteractionEnable = NO;(scrollView不能与用户交互,所有操作都不可以了)提到contentSize,有必要说一点,那就是scrollView的弹原创 2016-06-10 00:07:35 · 3218 阅读 · 0 评论 -
iOS 【UIKit-关于layoutSubviews的几点看法】
layoutSubviews方法,默认实现是用参数来设定subviews的尺寸和位置的。(也就是为子控件布局的)对于此方法,有以下几条理解:1、layoutSubviews这个方法自身无法调用,是被父类添加且该view的frame不为0时才执行的方法,如果你需要强制layout刷新,需要调用setNeedsLayout或者layoutIfNeeded2、如果view的frame值为原创 2016-06-10 00:20:41 · 624 阅读 · 0 评论 -
iOS 【UIKit-属性中引用UI控件要用weak的原因】
当UI控件添加到父控件中以后,父控件的subViews数组会有强指针指向这个对象,就可以保证这个对象不会被销毁,在搞一个属性引用这个对象,用弱引用就可以。这样在UI控件对象从其父控件移除时指向他的弱指针也会释放。(如果用强指针,那么指向控件的内存空间不会被释放,那么就会内存泄露)原创 2016-06-10 00:38:27 · 1377 阅读 · 0 评论 -
OpenGL ES 【Opaque 属性在 CAEAGLLayer 中的配置详解】
为什么在设置 CAEAGLLayer 时,要将其 opaque 为 YES。另比较阐述 opaque(不透明度)与 alpha、hidden 的区别。剖析公式 Result = Source + Destination * (1 - SourceAlpha)转载 2017-06-08 14:18:22 · 1413 阅读 · 0 评论 -
iOS 【UIKit-一个控件用肉眼看不见,有哪些可能】
一个控件用肉眼看不见,有哪些可能?转载 2016-02-18 17:52:02 · 979 阅读 · 0 评论 -
iOS 【boundingRectWithSize】
计算给定文本字符串所占的区域大小原创 2015-11-09 16:50:57 · 1388 阅读 · 0 评论 -
iOS 【UIKit-实现tableViewCell间的全屏分割线】
tableView 的 cell间的分割线设置为全屏分割样式,三种方式原创 2016-08-06 17:52:02 · 1024 阅读 · 0 评论 -
iOS 【UIKit-UIImageView 的 contentMode 属性概述】
经验规律:1.凡是带有Scale单词的,图片都会拉伸2.凡是带有Aspect单词的,图片都会保持原来的宽高比,图片不会变形UIViewContentModeScaleToFill : 图片拉伸至填充整个UIImageView(图片可能会变形)UIViewContentModeScaleAspectFit : 图片拉伸至完全显示在UIImageView里面原创 2016-03-09 17:20:34 · 733 阅读 · 0 评论 -
iOS 【UIKit-导航控制器 UINavigationController】
一、基本介绍两个比较特殊的控制器,专门用来管理控制器用的。他们是UINavigationController和UITabBarController。导航控制器也是一个控制器,它也有自己的View(两个,分别是导航条和栈顶控制器的view)。导航控制器的标志:导航条。导航条的Y值是从20开始的,高度为44,它显示到导航控制器的view上面。导航条的内部有一个子控件,它的Y原创 2016-06-20 22:14:28 · 1505 阅读 · 1 评论 -
iOS 【UIKit-设置navigationBar统一样式几点技巧】
首先我们自定义一个WZYNavigationController继承于UINavigationController。然后上代码:#import "WZYNavigationController.h"@interface WZYNavigationController ()@end@implementation WZYNavigationController// 当类被加载到内存原创 2016-07-04 18:54:25 · 1933 阅读 · 0 评论 -
iOS 【UIKit-程序启动原理/UIWindow加载】
一、什么是UIWindow(★★★ )UIWindow是一种特殊的UIView,通常在一个app中至少有一个UIWindow。iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了。一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow。二、程序启动阶段原创 2016-06-18 02:16:37 · 1059 阅读 · 0 评论 -
iOS 【UIKit-代码/xib 自定义控件】
1、通过xib创建一个控件,不会主动去加载XIB。即使你的类名和xib名字一样也是不会去加载的,必须用loadNibName。2、如果一个控件是通过alloc/init或者alloc/initWithFrame创建的(代码创建),初始化的时候肯定会调用initWithFrame:这个方法3、如果用xib的话,则不会进入initWithFrame,而一定会进入 initWithCoder原创 2016-06-10 01:19:48 · 875 阅读 · 0 评论 -
iOS 【UIKit-UIImage渲染模式 imageWithRenderingMode:】
设置UIImage的渲染模式:UIImage.renderingMode着色(Tint Color)是iOS7界面中的一个设置UIImage的渲染模式,你可以设置一个UIImage在渲染时是否使用当前视图的Tint Color。UIImage新增了一个只读属性:renderingMode,对应的还有一个新增方法:imageWithRenderingMode:,它使用UIImageRende原创 2016-02-02 22:51:01 · 1772 阅读 · 0 评论 -
iOS 【UIKit-文本属性 Attributes】
文本属性Attributes1.NSKernAttributeName: @10 调整字句 kerning 字句调整2.NSFontAttributeName : [UIFont systemFontOfSize:_fontSize] 设置字体3.NSForegroundColorAttributeName :[UIColor redColor] 设置文字颜色4.NSParagra转载 2016-02-02 22:40:32 · 1115 阅读 · 0 评论 -
iOS 【UIKit-UIPageControl利用delegate定位圆点位置 之 四舍五入小技巧】
在UIScrollView中会添加UIPageControl作为页码标识,可以让用户清楚的知道当前的页数。我们需要优化的一点是让pageControl的小圆点精确的跟着scrollView而定位。我们先来看一下效果图:我们发现,当图片拖动不到一半的时候,pageControl的圆点定位到前一张图,图片拖动超过一半的时候,定位到下一张图。这里就需要四舍五入的计算了。我们可以利用协议 de原创 2016-02-15 23:18:10 · 4792 阅读 · 0 评论 -
iOS 【UIKit-UITableView】
要学这一部分首先我们要再回顾一下代理。之前我们接触到过 这个协议,如果我们要学习UITableView,就要接触一个新的代理协议。也就是 比较一下这两个协议:(也算是 代理 小结一下)代理 步骤://1、遵守协议,预先定义好方法,不实现,具体的实现工作由代理负责//data source与delegate的区别:// 定义一些与数据操作有关的方法// 定义原创 2015-10-30 17:43:24 · 1061 阅读 · 0 评论 -
iOS 【错误:unrecognized selector sent to instance 0x7aa552b0】
翻译:给实体对象发送了不认识的消息大概有如下两个出错原因:1.对象过早的释放掉了,你引用的对象不存在。不能想空对象发送特定的方法(不是全部,因为release等特殊方法,例外)。2.该对象没有这个方法,检查一下方法参数跟调用该方法时参数是否匹配(切记粗心大意)。我出现错误是在对一个属性懒加载的过程中:错误代码:- (NSArray *)flagsArr{ if原创 2015-11-13 16:45:40 · 1254 阅读 · 0 评论 -
iOS 【UIKit-NSTimer 的创建及运行循环模式】
创建时钟并添加运行循环的模式:(1) // scheduledTimerWithTimeInterval 方法本质上就是创建一个时钟,并且自动添加运行循环 // 添加到运行循环的模式是NSDefaultRunLoopMode(自动添加运行循环,这里添加的运行循环模式是 “默认”) // 例子: self.timer = [NSTimer scheduledTimer原创 2015-10-27 17:59:08 · 1151 阅读 · 0 评论 -
iOS 【UIKit-按钮移动操作】
// .storyboard// 02-Button operation(优化-练习)#import "ViewController.h"typedef enum { kMovingDirTop = 11, kMovingDirBottom, kMovingDirLeft, kMovingDirRight,}kMovingDir;#define原创 2015-09-20 21:30:13 · 980 阅读 · 0 评论 -
iOS 【UIKit-关于userInteractionEnabled的属性的理解】
User Interaction EnabledA Boolean value that determines whether user events are ignored and removed from the event queue.译:一个布尔值,它决定了是否用户触发的事件被该视图对象忽略和把该视图对象从事件响应队列中移除。@property(nonato转载 2015-09-21 10:29:33 · 1482 阅读 · 0 评论 -
iOS 【Swift - 按钮(UIButton)的用法】
1,按钮的创建(1)按钮有下面四种类型:UIButtonType.ContactAdd:前面带“+”图标按钮,默认文字颜色为蓝色,有触摸时的高亮效果UIButtonType.DetailDisclosure:前面带“!”图标按钮,默认文字颜色为蓝色,有触摸时的高亮效果UIButtonType.System:前面不带图标,默认文字颜色为蓝色,有触摸时的高亮效果UIButtonTy转载 2015-09-20 20:50:37 · 2555 阅读 · 0 评论 -
iOS 【UIKit-首尾式动画不足&动画嵌套设置方法】
我们之前接触过 首尾式动画,这种动画大都已经不用了,缺点是不容易监听动画完成时间,而且不容易实现动画嵌套。// label.alpha = 0.0;// [UIView beginAnimations:nil context:nil];// [UIView setAnimationDuration:1.0f];// label.alpha = 1.0;//原创 2015-10-15 20:06:44 · 1548 阅读 · 0 评论 -
iOS 【UIKit-使用XIB自定义布局】
我们通常使用storyboard进行自定义布局,孰不知,还有XIB这个好帮手。XIB中可以包含多个自定义视图,但是通常只保存一个。就像是将stroyboard中的多个自定义视图拆开来。storyboard是重量级的,能够描述一个应用程序的所有界面。而XIB是轻量级的,在Xcode 4.0之前,是主要的图形界面搭建工具,现在也是主流的界面开发工具,适合开发小块的自定义视图。所以说使用XIB对自定义布原创 2015-10-18 10:25:35 · 1907 阅读 · 0 评论 -
iOS 【UIKit-在程序运行时隐藏状态栏】
将下面这个方法加在 ViewController.m 中,即可实现。//在程序运行时隐藏标签栏- (BOOL)prefersStatusBarHidden{ return YES;}原创 2015-10-31 15:56:17 · 1330 阅读 · 0 评论 -
iOS 【UIKit-UIPickerView】
UIPickerView和UITableView差不多,使用方式也都大致相仿。有这么两个数据源方法是必须实现的:#pragma mark - 数据源方法// returns the number of 'columns' to display.// 这个UIDatePicker中有几组,也就是有几列- (NSInteger)numberOfComponentsInPickerVi原创 2015-11-23 17:06:35 · 743 阅读 · 0 评论 -
iOS 【UIKit-UIScrollView】
首先,我们来通过一张图来直观的了解UIScrollView:经典解释:就像两张重叠在一起的纸,上面的纸中间有个320*480的屏幕状的洞,然后下面的纸可以无限大,显示是内容,你可以将手指通过这个洞来移动下面的纸,来阅读上面的信息。(这句话帮助理解很重要)contentSize是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentS原创 2015-10-27 08:32:12 · 1027 阅读 · 0 评论 -
iOS 【UIKit-简单抽屉效果】
演示一下效果:有三个view,向大家展示的效果为:蓝色在左边,红色在中间,绿色在右边。我们只需拖动红色view(mainView),然后便能看到两边的view。并且有一个小的效果,就是拉伸到超过屏幕一半的时候松手,会立即定位到两侧(距离较近的一侧),如果没有拖动超过屏幕一半则定位到原来的位置(也就是屏幕中央)。当定位在两侧的时候,点击定位的view,会自动复位。代码:在设计原创 2016-01-13 20:32:32 · 1119 阅读 · 0 评论 -
iOS 【UIKit-转换坐标系(1)】
首先要知道一点, 转换坐标系改变的是某个view的x、y值,而其width和height是不会发生改变的。介绍两个转换坐标系的函数:// ① 由前面的坐标系 转向 后面的坐标系convertRect: toView:// ② 由后面的坐标系 转回 前面的坐标系convertRect: fromView:<#(nullable UIView *)#了解之后,我们原创 2016-02-12 16:20:28 · 1469 阅读 · 0 评论 -
iOS 【UIKit-事件产生与传送 练习(重写hitTest和pointInside方法)】
练习要求:在下图中点击到绿色Button区域,Button响应(包括YellowView覆盖的绿色Button部分也是由绿色Button来响应)。点击YellowView部分(除覆盖绿色Button外的),YellowView响应。解决思路:如果我们只是一味的和之前一样重写绿色Button的hitTest方法,是不能很好的区分YellowView与绿色Button的重合部分的,他会原创 2016-01-10 10:55:44 · 3135 阅读 · 1 评论 -
iOS 【UIKit-UIDatePicker】
UIDatePicker 和 UIPickerView 比较相仿。只不过UIDatePicker是对时间进行操作的。我们经常在一些输入用户生日的表单中见过,UIDatePicker以键盘的形式弹出呈现出来。我们接下来要完成一个这样的效果。如图:①运行程序的时候出现生日的文本框,然后点击文本框会出现选择生日的UIDatePicker,当然这里UIDatePicker是作为文本框的键盘形式原创 2015-11-24 11:08:09 · 1133 阅读 · 0 评论