iOS知识点-概念

  • 浅复制就是指针拷贝;深复制就是内容拷贝。
  • 关于控件的继承关系:

(1)所有的控件都继承自 UIView。
(2)能监听事件的都是先继承自 UIControl,UIControl 再继承自 UIView。比如 UIButton。 (3)能整体滑动的都是继承自 UIScrollView,UIScrollView 再继承自 UIView。比如 UITableView。 (4)UIWindow 也是继承自 UIView。

  • 延时执行

方法 1:
performSelector(SEL) withObjects:(id) afterDelay:(NSTimeInterval);
方法 2:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//需要延时执行的代码
});

  • 图片拉伸
  1. 假设有一张图片:
    UIImage *myImage = [UIImage imageNamed:”pic”];

    方法一:

    [myImage stretchableImageWithLeftCapWidth:(NSInteger) topCapHeight:
    (NSInteger)];
    两个参数分别是左侧和上面的距离,相当于设置 android 9-pach 他图片的拉伸区域。 方法二:(常用)

    [myImage resizableImageWithCapInsets:(UIEdgeInsets)];

    可以传一个参数 UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)

  2. 例如,我们自定义一个方法:
    

    + (UIImage *)resizableImage:(NSString *)name {

    UIImage *normal = [UIImage imageNamed:name];
    CGFloat w = normal.size.width * 0.5;
    CGFloat h = normal.size.height * 0.5;
    return [normal
    resizableImageWithCapInsets:UIEdgeInsetsMake(h, w, h, w)];

    }

    方法三:

    [myImage resizableImageWithCapIsets:(UIEdgeInsets) resizingMode: (UIImageResizingMode)];

    这三个方法均返回一个新的 UIImage

  •  layoutSubviews 方法

当发生下面两种情况该方法会被调用:

(1)一个控件的 frame 发生改变的时候。

(2)布局子控件的时候 

  • UIApplication 的常用属性

1、设置应用程序图标右上角的红色提醒数字
@property(nonatomic) NSInteger applicationIconBadgeNumber;

2、设置联网指示器的可见性
@property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible;

  • 管理状态栏的方式:

第一种:
通过 UIViewController 管理(每一个 UIViewController 都可以拥有自己不同的状态栏)。
第二种:
通过 UIApplication 管理(一个应用程序的状态栏都由它统一管理)。

(1)状态栏的样式
- (UIStatusBarStyle)preferredStatusBarStyle;
(2)状态栏的可见性
- (BOOL)prefersStatusBarHidden;
利用 UIApplication 来管理状态栏
利用 UIApplication 来管理状态栏:
如果想利用 UIApplication 来管理状态栏,首先得修改 Info.plist 的设置。

UIWindow

- (void)makeKeyWindow;

让当前 UIWindow 变成 keyWindow(主窗口)。

- (void)makeKeyAndVisible;

让当前 UIWindow 变成 keyWindow,并显示出来。
获得 UIWindow
[UIApplication sharedApplication].windows
在本应用中打开的 UIWindow 列表,这样就可以接触应用中的任何一个 UIView 对象。 (平时输入文字弹出的键盘,就处在一个新的 UIWindow 中)

[UIApplication sharedApplication].keyWindow

用来接收键盘以及非触摸类的消息事件的 UIWindow,而且程序中每个时刻只能有一个 UIWindow 是 keyWindow。如果某个 UIWindow 内部的文本框不能输入文字,

可能是因为这个 UIWindow 不是 keyWindow。

view.window

获得某个 UIView 所在的 UIWindow。

  • delegate设置rootviewcontroller 

猜你喜欢

转载自www.cnblogs.com/cindyli/p/9078615.html