中间的提醒内容
指示器、HUD、遮盖、蒙板
半透明的指示器如何实现?
指示器的alpha = 1.0
指示器的背景色是半透明的
创建颜色
直接创建对应的颜色
+ (UIColor*)blackColor;// 0.0 white
+ (UIColor*)darkGrayColor;// 0.333 white
+ (UIColor*)lightGrayColor;// 0.667 white
+ (UIColor*)whiteColor;// 1.0 white
+ (UIColor*)grayColor;// 0.5 white
+ (UIColor*)redColor;// 1.0, 0.0, 0.0 RGB
+ (UIColor*)greenColor;// 0.0, 1.0, 0.0 RGB
+ (UIColor*)blueColor;// 0.0, 0.0, 1.0 RGB
+ (UIColor*)cyanColor;// 0.0, 1.0, 1.0 RGB
+ (UIColor*)yellowColor;// 1.0, 1.0, 0.0 RGB
+ (UIColor*)magentaColor;// 1.0, 0.0, 1.0 RGB
+ (UIColor*)orangeColor;// 1.0, 0.5, 0.0 RGB
+ (UIColor*)purpleColor;// 0.5, 0.0, 0.5 RGB
+ (UIColor*)brownColor;// 0.6, 0.4, 0.2 RGB
+ (UIColor*)clearColor;// 透明色
根据RGB组合创建颜色
+ (UIColor*)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha;
渐变动画
方式1:头尾式
[UIViewbeginAnimations:nilcontext:nil];[UIViewsetAnimationDuration:2.0];/* 需要执行动画的代码 */[UIViewcommitAnimations];
方式2:block式
[UIViewanimateWithDuration:2.0delay:1.0options:kNilOptions animations:^{/* 需要执行动画的代码 */} completion:nil]// 1s后,再执行动画(动画持续2s)
按钮
自定义按钮:调整内部子控件的frame
方式1:实现titleRectForContentRect:和imageRectForContentRect:方法,分别返回titleLabel和imageView的frame
方式2:在layoutSubviews方法中设置
内边距
// 设置按钮内容的内边距(影响到imageView和titleLabel)@property(nonatomic)UIEdgeInsetscontentEdgeInsets;
// 设置titleLabel的内边距(影响到titleLabel)@property(nonatomic)UIEdgeInsetstitleEdgeInsets;
// 设置imageView的内边距(影响到imageView)@property(nonatomic)UIEdgeInsetsimageEdgeInsets;
图片拉伸
iOS5之前
// 只拉伸中间的1x1区域- (UIImage*)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight;
iOS5开始
- (UIImage*)resizableImageWithCapInsets:(UIEdgeInsets)capInsets;
- (UIImage*)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode;
拷贝
实现拷贝的方法有2个
copy:返回不可变副本
mutableCopy:返回可变副本
普通对象实现拷贝的步骤
遵守NSCopying协议
实现-copyWithZone:方法
创建新对象
给新对象的属性赋值
KVC
全称:Key Value Coding(键值编码)
赋值
// 能修改私有成员变量- (void)setValue:(id)value forKey:(NSString*)key;- (void)setValue:(id)value forKeyPath:(NSString*)keyPath;
- (void)setValuesForKeysWithDictionary:(NSDictionary*)keyedValues;
取值
// 能取得私有成员变量的值
- (id)valueForKey:(NSString*)key;
- (id)valueForKeyPath:(NSString*)keyPath;
- (NSDictionary*)dictionaryWithValuesForKeys:(NSArray*)keys;
KVO
全称:Key Value Observing(键值监听)
作用:监听模型的属性值改变
步骤
添加监听器
// 利用b对象来监听a对象name属性的改变
[a addObserver:b forKeyPath:@"name"options:NSKeyValueObservingOptionOld|NSKeyValueObservingOptionNewcontext:@"test"];
在监听器中实现监听方法
-(void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context{NSLog(@"%@ %@ %@ %@", object, keyPath, change, context);}
网友评论