iOS開發基礎-九宮格座標(4)

來源:互聯網
上載者:User

標籤:

  對iOS開發基礎-九宮格座標(3)的代碼進行進一步最佳化。

  建立一個 UIView 的子類,並命名為 WJQAppView ,將 appxib.xib 中的 UIView 對象與建立的視圖類進行關聯。

   WJQAppView 類中聲明3個 IBOutlet 屬性,與 appxib.xib 中的視圖對象包含的 UIImageView 、 UILabel 和 UIButton 建立串連。 WJQAppView 標頭檔代碼如下所示:

1 //WJQAppView.h2 @interface WJQAppView : UIView3 @property (weak, nonatomic) IBOutlet UIImageView *appImage;4 @property (weak, nonatomic) IBOutlet UILabel *appLabel;5 @property (weak, nonatomic) IBOutlet UIButton *appButton;6 @end

  最後,修改 ViewController.m 中的 viewDidLoad 方法:

 1 //ViewController.m 2 - (void)viewDidLoad { 3     [super viewDidLoad]; 4      5     int totalColumn = 3;        //3列 6     CGFloat margin = (self.view.frame.size.width - totalColumn*appViewWidth) / (totalColumn + 1); 7     int count = self.apps.count; 8     NSLog(@"%d", count); 9     10     for (int i = 0; i < count; i++) {11         int row = i/totalColumn;        //行號,從0開始12         int column = i%totalColumn;     //列號,從0開始13         CGFloat appViewX = margin + (margin + appViewWidth) * column;       //子視圖的X座標14         CGFloat appViewY = margin + (margin + appViewHeight) * row;      //子視圖的Y座標15         WJQAppInfo *appInfo = self.apps[i];16         17         //建立UIView控制項18         NSArray *appArray = [[NSBundle mainBundle] loadNibNamed:@"appxib" owner:nil options:nil];19         WJQAppView *appView = [appArray firstObject];20         appView.frame = CGRectMake(appViewX, appViewY, appViewWidth, appViewHeight);21         appView.appImage.image = appInfo.image;      //設定圖片22         appView.appLabel.text = appInfo.desc;        //設定名稱23         appView.appButton.tag = i;                   //設定按鈕的序號24         [appView.appButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];25         26         [self.view addSubview:appView];27     }28 }

 

參考部落格:iOS開發UI篇—xib的簡單使用

執行個體代碼:http://pan.baidu.com/s/1o7l6IXc 

iOS開發基礎-九宮格座標(4)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.