日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS回顾笔记( 01 )-- XIB和纯代码创建应用的对比

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS回顾笔记( 01 )-- XIB和纯代码创建应用的对比 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

iOS回顧筆記( 01 )-- ?XIB和純代碼創建應用的對比

很多時候我們工作很久突然閑下來的時候,是不是也感到無聊過?這就是我現在的生活,不過閑一段時間也挺好,可以好好回顧一下自己以前學習iOS路上的點點滴滴,做到溫故而知新。

且回顧、且整理記錄、且分享。

一個簡單的iOS小程序

簡單實現一個小程序 --- “改變文字顏色”

?

這個小程序很簡單,實現步驟:

  • 所需元素:三個button,一個Label
  • 監聽button的點擊事件,做對應修改顏色功能

這個小Demo通常有兩種實現方式,純代碼和XIB,下面介紹一下兩者實現和區別:


純XIB實現

這個直接上圖吧

?

  • 左邊是Xib拖的Label和三個button
  • 右邊是Xib拖線與代碼進行關聯和對應



純代碼實現

#import "ViewController.h"@interface ViewController ()@property (nonatomic, weak) UILabel *label;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// 1.創建LabelUILabel *label = [UILabel new];label.text = @"我是測試文字";label.textAlignment = NSTextAlignmentCenter;label.frame = CGRectMake(0, 50, self.view.frame.size.width, 50);self.label = label;[self.view addSubview:label];// 2.創建三個buttonUIButton *redBtn = [self creatBtnWithTitle:@"紅" selector:@selector(redColor:)];redBtn.frame = CGRectMake(0, CGRectGetMaxY(label.frame), 375/3, 50);UIButton *greenBtn = [self creatBtnWithTitle:@"綠" selector:@selector(greenColor:)];greenBtn.frame = CGRectMake(375/3, CGRectGetMaxY(label.frame), 375/3, 50);UIButton *blueBtn = [self creatBtnWithTitle:@"藍" selector:@selector(blueColor:)];blueBtn.frame = CGRectMake(375/3*2, CGRectGetMaxY(label.frame), 375/3, 50);}// 封裝創建按鈕的公共代碼 - (UIButton *)creatBtnWithTitle:(NSString *)title selector:(SEL)selector {UIButton *btn = [UIButton new];[btn setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];[btn setTitle:title forState:UIControlStateNormal];[btn addTarget:self action:selector forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:btn];return btn; }// 紅色按鈕的點擊事件 - (void)redColor:(id)sender {self.label.textColor = [UIColor redColor]; }// 綠色按鈕的點擊事件 - (void)greenColor:(id)sender {self.label.textColor = [UIColor greenColor]; }// 藍色按鈕的點擊事件 - (void)blueColor:(id)sender {self.label.textColor = [UIColor blueColor]; }

這兩種方式雖然都很簡單,但是有點不同,下面總結一下各自的特點

  • XIB

    • 方便快捷,特別適用于局部UI的快速搭建
    • XIB拖線直觀,但是多人開發容易暗含多種陷阱(例如:拖線的方法找不到;或者代碼里面注釋了,但是xib還是正常顯示的,一點擊就崩潰;或者一個控件連線多個方法,出現異常等)
    • 適用范圍:
      • 適用于一些靜態頁面,如果每次UI都動態改變的還是代碼為主。
    • XIB經典錯誤(運行過程中找不到對應方法)

      ?

  • 純代碼

    • 相對麻煩,本來動動手拖個線的事,還要敲一些基礎代碼,效率低(不是指編譯或運行效率)
    • 整潔易懂,如果代碼清晰的話,看起來也是很整潔的。
    • 思路清晰,多人合作不易出現類似XIB或Storyboard那樣的雜亂的連線的問題。
    • 動態UI的首選方式。

最后計算機在編譯的過程中無論哪種方式實現都是轉化成代碼的方式,代碼是萬能的

  • 關于XIB里面的IBOutlet和IBAction
    • IBOutlet:聲明插座變量,和XIB進行連線的標識,只有聲明為IBOutlet屬性才能跟XIB/StoryBoard中的控件連線
    • IBAction:從返回值角度看,等同于void,它也是和XIB進行連線的標識,只有返回值為IBAction才能跟XIB/StoryBoard中的控件連線

轉載于:https://www.cnblogs.com/xiaoyouPrince/p/6479603.html

總結

以上是生活随笔為你收集整理的iOS回顾笔记( 01 )-- XIB和纯代码创建应用的对比的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。