UI01_UIView

AppDelegate.h

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@property(retain, nonatomic)NSMutableArray *array;

@property(copy, nonatomic)NSString *str;

- (void)setStr:(NSString *)str;

@end

AppDelegate.m

这里写#import "AppDelegate.h"
//  延展  主要写属性的地方
@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    //  创建一个窗口, 让它的尺寸和屏幕尺寸等大
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.

    //  修改窗口的背景颜色
    self.window.backgroundColor = [UIColor whiteColor];

    //  让当前的窗口可见, 并成为主窗口
    [self.window makeKeyAndVisible];

    //  释放
    [_window release];

    //  UIView
    //  第一步: 创建
    //  先看继承关系, 再找这个类有没有自己的初始化方法
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    //  第二步: 设置背景颜色, 没有设置的话默认是透明的
    view.backgroundColor = [UIColor cyanColor];
    //  第三步: 把视图在window上显示出来
    [self.window addSubview:view];
    //  父视图通过一个数组来管理身上的子视图


    //  第四步: 释放
    NSLog(@"%ld", view.retainCount);
    //  因为父视图把子视图放到数组来进行管理, 数组会对对象的引用计数+1, 所以我们可以在添加视图之后把对象释放掉, 抵消alloc所产生的+1
    [view release];

//    view.backgroundColor = [UIColor blueColor];

    //  再创建两个view
    UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(150, 150, 100, 100)];
    view1.backgroundColor = [UIColor blueColor];
    [self.window addSubview:view1];
    [view1 release];

    UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(200, 200, 100, 100)];
    view2.backgroundColor = [UIColor purpleColor];
    [self.window addSubview:view2];
    [view2 release];

    //  1. 一个视图有一个父视图, 但是可以有多个子视图
    //  3. 子视图的坐标点时相对父视图的0,0位置

    //  通过父视图来管理子视图
    //  父视图可以管理层级关系
    [self.window bringSubviewToFront:view];
    [self.window sendSubviewToBack:view];


    //  透明度, 从0到1, 默认是1
    view2.alpha = 0.2;
    //  隐藏, 默认NO
    view.hidden = YES;
    //  父视图
    NSLog(@"%@", view1.superview);
    //  子视图
    NSLog(@"%@", view.subviews);


    //  默认都是0
    view1.tag = 100;

    UIView *tempView = [self.window viewWithTag:100];
    NSLog(@"%p %p", view1, tempView);

    //  NSTimer

    return YES;
}

  两种setter方法
//- (void)setStr:(NSString *)str {
    if (str != _str) {
        [_str release];
        _str = [str copy];
    }
//    [str retain];
//    [_str release];
//    _str = str;
//}

- (void)dealloc {
    //  对属性进行内存管理
    [_window release];
    [super dealloc];
}
代码片
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值