- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 Button 图片和标题位置居中问题
针对按钮的图片和标题的居中问题,像微信公众帐号带有二级菜单的按钮,图片和标题合起来居中,这就用到了,button.title 和button.image 以及他们的 edgeInsets以下是文本和图片从上到下排列,都水平居中的代码,当然也可以另外使用imageView贴到button上,效果是一样的。 //按钮的中心 CGPoin
2015-09-10 11:06:28
1678
原创 GCDMulticastDelegate多播委托
在iOS中实现回调的机制有以下几种:1.block 2.通知 2.kvo 4.delegate 其中比较常用的是delegate和block,通知其次,最后才是KVO.回调的话,既可以有1对1,也可以1对多。分类 1对1的回调 1对多的回调 从分类上看,block和delegate可以实现1对1的回调。 通知可以实现1对多的回调。假如现在有一个需求,我们以图片下载为例。这里先忽略哪些
2015-08-08 22:11:59
1408
原创 自定义视图点击区域
自定义视图点击区域大家都知道,一个按钮或者视图的有效点击区域是一个长方形,包括圆形头像,如何让这些圆形,或者不规则图形或者按钮的有效点击区域只在圆形范围内或者只在不规则图形内呢?效果如下: 图中,灰色为点击区域,橘黄色的为按钮矩形区域。答案是可以的,通过这个方法就可以做到。- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event
2015-08-01 15:56:31
640
原创 自定义文本横向渐变消失的控件
自定义文本横向渐变消失的控件.h文件内容#import <UIKit/UIKit.h>@interface FadeStringView : UIView/** * 输入文本 */@property (strong, nonatomic) NSString *text;/** * @brief 向右渐变消失 */- (void)fadeRight;//最好这样子实现- (v
2015-07-13 18:57:58
626
原创 maskView配合带alpha通道图片
maskView配合带alpha通道图片1.比CAGradientLayer高效 2.可以加载多张图片,并实现动画特效 UIImageView *backgroundView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)]; backgroundView.image = [UIImage image
2015-07-13 12:46:11
1281
原创 maskView 加载 CAGradientLayer
maskView 加载 CAGradientLayer1.用CAGradientLayer 直接产生带透明像素通道的layer 2.用maskView直接加载带CAGradientLayer的view CGFloat width = 120; //加载图片 self.baseImageView = [[UIImageView alloc] initWithFrame:CGRect
2015-07-13 12:03:03
497
原创 maskView动画
maskView动画maskView(maskLayer)基本原理maskView(maskLayer)可类比于多张png图片的折叠遮罩 maskView是iOS8以上才有的,如果兼容低版本,用maskLayer替换 //底图 self.baseImageView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, widt
2015-07-13 11:36:02
540
原创 Swift和OC混合编程
Swift和Objc混合编程注意是Swift中加入Oc代码,目前不能在Oc中加入Swift代码。新建项目后,然后新建Oc文件,语言选择Oc, 完成后弹出对话框,表达的意思是Swift与Oc进行桥接。 选择Yes,如果选择了No,那么将不能创建桥接文件。 需要加入这个文件, 模块名-Bridging-Header.h, 并设置”Objective-C Bridging Header”编译属性
2015-07-12 16:38:10
461
原创 CAEmitterLayer 粒子效果
CAEmitterLayer 粒子效果CAEmitterLayer运行在GPU上,不消耗cpu。 //创建出Layer CAEmitterLayer *emitterLayer = [CAEmitterLayer layer]; //显示边框 emitterLayer.borderWidth = 1.f; emitterLayer.borderColor = [[UIC
2015-07-09 22:43:54
506
原创 iO开发工程师面试题--高级
高级iOS开发工程师面试题CALayer与UIView的区别最大区别是 图层(CALayer)不会直接渲染到屏幕上。UIView是iOS系统中界面元素的基础,所有的界面元素都集成自它。它本身完全是由CoreAnimation来实现的。真正的绘图部分,是由一个CALayer类来管理的。一个UIView上可以有n个CALayer,每个layer显示一种东西,增强UIView的显示。这道题本人论文中曾
2015-07-09 17:36:16
816
原创 iOS开发工程师面试题--中级
中级iOS开发工程师面试题1.MVC的理解MVC即(Model-View-Controller)是模型-视图-控制器的缩写。是一种架构设计,并不属于基本的设计模式(23种设计模式)。M(Model)数据模型:负责定义、存储、操作数据。比如数据库操作。V(View)视图:用来展示视图,并进行用户交互C(Controller)控制器:M和V的协调者,控制获取数据,将数据交给视图去展示。算是链接数据和视图
2015-07-09 15:18:34
2021
原创 iOS中滤镜的使用(三)OpenGLES渲染
iOS中滤镜的使用(三)OpenGLES渲染首先,Open Graphics Library(OpenGL)用于二维和三维的可视化。而OpenGL for Embedded Systems(OpenGL ES)是OpenGL的一个简化版本,消除冗余的功能并提供一个库,非常容易学习,在移动装置上应用实践容易。 它直接运行的图形处理硬件上,也就是GPU,并不运行在CPU上,因此,对CPU的消耗非常的小
2015-07-09 12:53:47
2103
原创 iOS中滤镜的使用(二)滤镜组合
iOS中滤镜的使用(二)滤镜组合首先 要加载图片并转化为CIImageCIImage *ciImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"IMG_0160"]];其次,创建filter滤镜 CIFilter *filterOne = [CIFilter filterWithName:@"CIPixellate"];//马
2015-07-09 11:18:49
2438
原创 iOS中滤镜的使用(一) 马赛克滤镜
iOS中滤镜的使用(一)马赛克滤镜首先 要加载图片并转化为CIImageCIImage *ciImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"IMG_0160"]];其次,创建filter滤镜CIFilter *filter = [CIFilter filterWithName:@"CIPixellate"];NSLog
2015-07-09 09:58:44
2199
转载 使用Xcode自带的单元测试
今年苹果推出的iOS8和Swift的新功能让人兴奋。同时,苹果对于Xcode的测试工具的改进却也会影响深远。现在我们来看下XCTest,Xcode内置的测试框架。以及,Xcode6新增的XCTestExpectation和性能测试。现在Xcode项目已经支持out-of-the-box的测试。比如,创建一个新的iOS应用项目后,项目会自动配置两个顶层的group:一个是“应用名称”的gro
2015-03-18 18:59:04
745
原创 iOS启动类型分析
iOS启动类型分析iOS 程序启动时总会调用application:didFinishLaunchingWithOptions:,其中第二个参数launchOptions为NSDictionary类型的对象,里面存储有此程序启动的原因。 launchOptions中的可能键值见UIApplication Class Reference的Launch Options Keys节 。若用户直接启动,l
2015-03-04 19:51:08
547
转载 android notification 的总结分析
notification是一种出现在任务栏的提示,特别是在4.0以后notification改进了不少,本文内容都是基于4.0及4.1以后总结来的分类 notification有以下几种: 1>普通notification 1.内容标题 2.大图标 3.内容 4.内容附加信息 5.小图标
2015-01-16 01:17:24
605
转载 Android框架浅析之锁屏(Keyguard)机制原理
本文原创,转载请注明出处:http://blog.youkuaiyun.com/qinjuning 最近终于成功的摆脱了FM收音机,迈向了新的模块:锁屏、状态栏、Launcher---姑且称之为“IDLE”小组,或许叫手机 美容小组,要是能施展下周星星同学的还我漂漂拳,岂不快哉。 OK,闲话打住,咱开始正文。 本文主要内容:
2015-01-13 23:25:22
1349
转载 Android开发:LayoutParams的用法
LayoutParams继承于Android.View.ViewGroup.LayoutParams. LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去
2015-01-12 21:20:09
565
转载 (转)getMeasuredHeight()与getHeight的区别
转于:http://blog.youkuaiyun.com/chongshi007/article/details/8985063实际上在当屏幕可以包裹内容的时候,他们的值相等,只有当view超出屏幕后,才能看出他们的区别:getMeasuredHeight()是实际View的大小,与屏幕无关,而getHeight的大小此时则是屏幕的大小。当
2015-01-12 17:10:41
560
转载 Android特效 五种Toast详解
Android特效 五种Toast详解 Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失。1.默认效果:代码:Toast.makeText(getApplicationContext(), "默认Toast样式", Toast.
2015-01-12 00:02:24
480
转载 EditText特殊属性小结
转自:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=236793 EditText是Android开发经常用到的控件之一,其属性众多,特殊属性小结如下:1. 设置光标到指定位置 EditText et = (EditText) findViewById(R.id.etTest); et.setS
2015-01-06 10:48:29
712
原创 UITapGestureRecognizer 和touches事件
- (instancetype)initWithFrame:(CGRect)r{ self = [super initWithFrame:r]; if (self) { self.linesInProgress = [[NSMutableDictionary alloc] init]; self.finishedLines = [[NSMutab
2014-11-06 22:52:57
1293
原创 iOS 中用到 fabsf fabs abs函数的作用
int abs(int i); // 处理int类型的取绝对值double fabs(double i); //处理double类型的取绝对值float fabsf(float i); /处理float类型的取绝对值
2014-11-02 22:57:34
4957
转载 iOS 开发者必不可少的 75 个工具
如果你去到一位熟练的木匠的工作室,你总是能发现他/她有一堆工具来完成不同的任务。软件开发同样如此。你可以从软件开发者如何使用工具中看出他水准如何。有经验的开发者精于使用工具。对你目前所使用的工具不断研究,同时了解一些替代品的使用,当你目前所用的工具无法满足你的需要时可以填补空缺。记住了这些,我将向你展示一份关于各种工具的长长的列表。其中一些我每天都用,其他的我看情况使用。如果你还有更多的工
2014-10-31 09:54:31
752
转载 关于CoreData的一个工具Mogenerator的使用
关于CoreData的一个工具Mogenerator的使用 分享类型:应用开发相关最近看到用CoreData时使用的工具Mogenerator,发现网上介绍其具体使用的不多,特此简单整理一下,关于CoreData这里就不具体说了,使用就用MagicalRecord,用起来真是太方便了。关于Mogenerator M
2014-10-31 09:51:09
661
转载 UISwipeGestureRecognizer ---手指动作
UISwipeGestureRecognizer ---手指动作tap是指轻触手势。类似鼠标操作的点击。从iOS 3.2版本开始支持完善的手势api:tap:轻触long press:在一点上长按pinch:两个指头捏或者放的操作pan:手指的拖动swipe:手指在屏幕上很快的滑动rotation:手指反向操作这为开发者编写手势识别操作,提供了很大的方便,想想之前用
2014-10-30 23:29:05
796
原创 自定义照相机界面之cameraOverlayView和UIImagePickerControllerEditedImage
- (IBAction)takePicture:(id)sender{ imagePicker = [[UIImagePickerController alloc] init]; // If the device ahs a camera, take a picture, otherwise, // just pick from the photo library
2014-10-26 22:28:07
7411
2
转载 NSDateFormatter格式详细列表一览
NSDateFormatter格式详细列表一览前言:iOS开发中NSDateFormatter是一个很常用的类,用于格式化NSDate对象,支持本地化的信息。与时间相关的功能还可能会用到NSDateComponents类和NSCalendar类等。本文主要列出NSDateFormatter常见用法。 NSDate对象包含两个部分,日期(Date)和时间(Time)。格式化的时间
2014-10-25 21:29:16
640
转载 XCode :使用Code Snippets
最近,我偶然看到 这篇文章 , 对Xcode4的 Snippets产生了极大的兴趣。在此之前,我从来不知道什么snippets。读了那篇文章后,我开始使用它们,并创建了自己的snippets。如今,我的工作效率提高了一大截。下面这个例子,演示了snippets的强大之处。键入:tttsnippets将会自动为你生成如下代码:#pragma mark -
2014-10-23 17:34:52
1015
原创 UIBezierPath的使用
使用UIBezierPath类可以创建基于矢量的路径.包括ARCs(圆弧),lines(直线),curves(曲线)。下面我按照iOS programming 上的demo做的例子。 CGRect bounds = self.bounds; CGPoint center; center.x = bounds.origin.x +bounds.size.wi
2014-10-12 00:18:57
674
转载 相对数据源扩展(RelativeSource)
今天看了一些wpf 关于binding的知识,其中一个是element path形式,这种形式相对简单,而source path 则稍微复杂,刚开始看的时候,觉得RelativeSource path是看不懂,后来看了一些例子才知道它的作用,是banding自身或与自身相关的数据。binding的东西有Self FindAncestor PreviousData Templat
2012-07-15 15:32:08
1038
原创 wpf中的倒影效果实现
FontSize="30" AcceptsReturn="True" AcceptsTab="True">abcdefghigklmnopqrstuvwxyz
2012-07-11 15:30:57
2222
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人