1.状态栏?
<1>在iOS7中,状态栏默认情况下归控制器管理,比如状态栏的样式、状态栏是否可见;
<2>控制器通过重写以下方法来控制状态栏:
①设置状态栏的样式:
- (UIStatusBarStyle)preferredStatusBarStyle; // 其中UIStatusBarStyleLightContent是白色样式
②设置状态栏的可见性:
- (BOOL)prefersStatusBarHidden;
2.Retina屏幕?
<1>Retina屏幕就是高清视网膜屏幕,分辨率宽高是标准屏幕分辨率的2倍:
<2>应用程序图标:①只要文件名叫做Icon.png,就会自动被当做是应用程序的图标;②一个应用程序可以准备多种规格的图标;
<3>应用程序启动图片:①一个app在启动过程中会全屏显示叫做Default.png的图片就是应用程序启动图片;②不同规格Default的使用场合:
3.补充?
<1>UIButton有很多种状态,它提供了一些便捷属性,可以直接获取当前状态下的文字、文字颜色、图片等;
@property(nonatomic,readonly,retain) NSString *currentTitle;
@property(nonatomic,readonly,retain) UIColor *currentTitleColor;
@property(nonatomic,readonly,retain) UIImage *currentImage;
@property(nonatomic,readonly,retain) UIImage *currentBackgroundImage;
<2>设置按钮属性,下图中的三个选项默认是勾选,分别控制按钮高亮状态下调整图片,不可用状态调整图片,以及按钮是否可用。如果要设置某个按钮不能被点击,且不可用状态下不改变按钮图片,应当将Disabled Adjusts Image和Enabled选项去掉勾选。
<3>给某个按钮的图片设置边框,可以将按钮的Background背景图片设为白色背景图片,Image图片设为按钮图片,然后设置按钮Inset属性。如下图,按钮图片就有3个点数的边框:
<4>将某个控件从内存中移除,该控件应主动调用removeFromSuperview:方法:
- (void)removeFromSuperview;
// for-in循环移除answerView中所有的子控件
for (UIButton *btn in self.answerView.subviews)
{
[btn removeFromSuperview];
}
<5>将某个子控件放到最前面:
- (void)bringSubviewToFront:(UIView *)view;
<6>UIView的类方法利用block设置动画:
+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion; // delay = 0.0, options = 0
[UIView animateWithDuration:0.25 animations:^{ // 存放需要执行动画的代码
self.icon.frame = CGRectMake(90, 80, 140, 140); // icon按钮慢慢变小
self.cover.alpha = 0; // cover阴影慢慢消失
} completion:^(BOOL finished) { // 动画执行完毕后会自动调用这个block内部的代码
[self.cover removeFromSuperview]; // 主动调用从父控件中移除的方法
self.cover = nil; // 清空指针
}];
<7>取出某个按钮的文字:
- (NSString *)titleForState:(UIControlState)state; // these getters only take a single state value
@property(nonatomic, readonly, retain) NSString *currentTitle; // normal/highlighted/selected/disabled. can return nil
<8>设置某个控件是否隐藏:、
@property(nonatomic, getter=isHidden) BOOL hidden;
<9>监听某个按钮的UIControlEvents事件,调用某个方法:
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents; // 传入接收对象,sel类型数据,事件
<10>delay的时间延迟后调用某个方法:
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay;