IOS工作筆記(一),ios工作筆記

來源:互聯網
上載者:User

IOS工作筆記(一),ios工作筆記

說明:記錄下學習IOS的一些瑣碎,有些在現在看起來很簡單幼稚,不過權當足跡吧!

1.xib開發ipad使用橫屏,可以在xib的view設定orientation為landscape,portrait是豎屏。

 

2.在.m檔案中聲明UITextField後,若想擷取。比如想擷取pwd
@property(nonatomic,weak) UITextField *pwd;
那麼可以用 self.pwd.text擷取。

_pwd.text;// 這也可以擷取到。

因為self.view其實調用的是pwd的get方法。就是

1 -(UITextField *)pwd{2   return _pwd;3 }

 

3.字串比較,看是否相等

1 NSString *str1 = self.pwdField.text;2 if([str1 isEqualToString:@"123"]){3   //其它操作4 }

 

4.建立一個項目,若不想使用內建的viewController和storyboard,刪除之,那麼在建立xib檔案後容易出現問題就是程式運行後主介面是空白的。這時可以這麼來解決,就是自己定義需要現實的view。
①在Supporting Files檔案夾,編輯plist檔案。將Main storyboard file base name置空(因為storyboard檔案已刪除)。
②在Appdelegate.m的

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

方法中添加代碼。如想展示LoginViewController,那麼可以這樣寫。固定格式

1 self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];2 self.window.rootViewController = [[LoginViewController alloc]init];3 [self.window makeKeyAndVisible];//讓視圖可見,並顯示在螢幕上

 

5.使用xib檔案連線時,必須把view也連起來,否則就是沒有畫面的程式,切記。

 

6.顯示控制項時,需要用以下代碼。如:

1 [self.view addSubview:btn1];2 [self.view addSubview:btn2];

按鈕添加事件時,可以用

1 [btn1 addTarget:self action:@selector(btnPressed:) forControllerEvents:UIControlEventTouchUpInside];2 -(void)btnPressed:(id) sender{3   UIButton *btn = (UIButton *)sender;4   //按鈕的事件代碼5 }

當然也有如下形式,最好使用上邊的。(id)sender這個參數指button本身,

1 -(void) login{ //該函數沒有參數,容易出錯2     //事件3 }

 

7.一般不這樣定義button

1 CGRect frame4 = CGRectMake(430, 200, 200, 100);2 UIButton *loginBtn = [[UIButton alloc]initWithFrame:frame4];

一般是這樣來定義

1 loginBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];2 loginBtn.frame = frame4;

 

8.設定根控制器,需要在AppDelegate中寫。一般這種格式是固定的,需要在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{}
中寫。如:

 1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ 2   //必須寫在最前邊,否則視圖不出現 3   self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]]; 4   //若要顯示其它東西,如百度地圖,那麼也要聲明 5   self.mapManager = [[BMKManager alloc]init];//不想顯示時可以刪去 6  7   //定義MainViewController為根控制器 8   UINavigationController *controller = [UINavigationController alloc]initWithRootViewController:[[MainViewController alloc]init]]; 9   self.window.rootViewController = controller;10   [self.window makeKeyAndVisible];11   self.window.backgroundColor = [UIColor whiteColor];12   return YES;13 14 }

若不想使用UINavigationController,那麼可以直接定義

self.window.rootViewController = [[LoginViewController alloc]init];

相當於把定義根控制器的那行代碼刪除即可。
然後對應的,頁面之間的跳轉有兩種方法。

[self presentViewController:mainView animated:YES completion:nil];//view內建的屬性[self.navigationController pushViewController:mainView animated:true];//必須設定根控制器,否則該法無效

 

9.程式載入時首頁展現的內容是在下邊方法實現的,並且[super viewDidLoad]不能省略。

1 -(void)viewDidLoad{2   [super viewDidLoad];3     //其它代碼   4 }

 

10.@property屬性的區別
weak:一般用於UI組件,如UIButton,UILabel,UITextField等。
strong:用於一般對象,如數組等
copy:用於NSString
assign:用於基本類型
在xib和純程式碼中是有區別的,xib中UI組件用weak,subViews數組會強引用這些組件;純程式碼寫時,就得用strong屬性了,否則會報

Assigning retained object to weak variable; object will be released after assignment
切記。

 

NSArray和NSDictionary的用法舉例,字典本身就屬於索引值對,其中的key為icon和desc,不同圖片的key對應不同的值。

 1 @property(nonatomic,strong)NSArray *imageData; 2 NSMutableDictionary *image1 = [NSMutableDictionary dictionary]; 3 image1[@"icon"] = @"hello"; //屬於索引值對形式 4 image1[@"desc"] = @"這是一張圖片的說明"; 5  6 NSMutableDictionary *image2 = [NSMutableDictionary dictionary]; 7 image2[@"icon"] = @"hello2"; 8 image2[@"desc"] = @"這是一張圖片的說明2"; 9 10 //快速的建立數組11 self.imageData = @[image1,image2];

當程式中使用較多的key,為了防止把key拼錯,可以定義宏常量,如

#define IconKey @"icon"

以後用到@"icon"時,可以用IconKey直接代替

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.