個人iOS 學習 - 初探iOS

iOS使用Object-C (不討論swift),相似C,main函數爲程序執行入口swift

1 #import <UIKit/UIKit.h>
2 #import "AppDelegate.h"
3 
4 int main(int argc, char * argv[]) {
5     @autoreleasepool {
6         return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
7     }
8 }

 

在main函數裏面執行 UIApplicationMain 函數,函數執行過程建立了一個UIApplication 對象(我是這樣理解的,不知道實際是否是,呵呵),同時指定UIApplication的委託 AppDelegate(能夠看到在 AppDelegate.h中實現了UIApplicationDelegate協議)。xcode

默認建立的AppDelegate中又6個方法,對應Application在運行時的各類狀態,能夠在方法裏添加處理。app

1 // 程序完成啓動, 初始化一些全局數據能夠在這個方法裏實現
2 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
3     // Override point for customization after application launch.
4     return YES;
5 }

 

 這裏是程序啓動完成執行的方法,以前的xcode版本會在這裏有UIWindow的建立代碼,如今的xcode建立一個簡單工程,默認有個Main.storyboard,關聯了默認建立的viewController ,程序啓動首先會執行viewController,在viewDidLoad 方法裏面加載視圖,ide

建立視圖函數

 

 1 - (void)viewDidLoad {
 2     [super viewDidLoad];
 3     // Do any additional setup after loading the view, typically from a nib.
 4     
 5     UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 200, 200)]; //建立一個視圖,在iOS屏幕座標系的(50,50)位置建立一個200x200的視圖
 6     aView.backgroundColor = [UIColor yellowColor];  //添加背景色,默認是沒有背景的,
 7     [self.view addSubview:aView]; // 將aView 添加到主視圖上
 8     aView.tag = 100; // 添加一個tag值,能夠經過代碼快速定位視圖,值不能定義的過小,由於iOS系統也使用了tag標記視圖,爲了避免與系統衝突從100開始
 9     
10     UIView *bView = [[UIView alloc] initWithFrame:CGRectMake(20, 20, 100, 100)];
11     [bView setBackgroundColor:[UIColor blueColor]];
12     bView.tag = 1001;
13     [aView addSubview:bView];
14     
15     // cView在aView上方,cView太大將超出,經過設置父視圖的clipBounds屬性裁剪掉超出的部分,超出父視圖部分不接受交互
16     UIView *cView = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 300, 100)];
17     [cView setBackgroundColor:[UIColor greenColor]];
18     cView.tag = 1002;
19 //    [aView addSubview:cView];
20 //    [aView insertSubview:cView aboveSubview:bView];//插入到cView到bView上方
21     [aView insertSubview:cView belowSubview:bView];//插入cView到bView的下方
22     
23     [aView setClipsToBounds: YES];
24     aView.alpha = 0.5; // 父視圖設置透明度,子視圖也受影響
25     aView.userInteractionEnabled = NO; // 是否接受交互
26     
27     UIView *serachView = [self.view viewWithTag:1001];
28     NSLog(@"serachView = %@", serachView);
29     [serachView removeFromSuperview]; //從父視圖刪除

 

 

 

  視圖的基本使用,更多的使用方法,還在學習中 ...學習

相關文章
相關標籤/搜索