亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS開發UI篇―xib的簡單使用實例

2020-07-26 03:06:52
字體:
來源:轉載
供稿:網友

這個博客申請了有一段時間了,覺得好像是該寫點什么了。這篇文章主要是關于一些xib的簡單的用法,希望可以幫助到剛剛使用xib的新手們。

什么是xib? xib能做什么?

用來描述軟件界面的文件。

如果沒有xib,所有的界面都需要通過代碼來手動創建。

有了xib以后,可以在xib中進行可視化開發,然后加載xib文件的時候,系統自動生成對應的代碼來創建界面。

與xib類似的還有storyboard文件。xib和storyboard的比較,一個輕量級一個重量級。

共同點:

都用來描述軟件界面。都用Interface Builder工具來編輯

不同點:

Xib是輕量級的,用來描述局部的UI界面

Storyboard是重量級的,用來描述整個軟件的多個界面,并且能展示多個界面之間的跳轉關系

二、xib的簡單使用

1.建立xib文件
建立的xib文件命名為appxib.xib
2.對xib進行設置

根據程序的需要,這里把view調整為自由布局
建立view模型(設置長寬等參數)
調整布局和內部的控件
完成后的單個view

3.使用xib文件的代碼示例

YYViewController.m文件代碼如下:

//// YYViewController.m// 10-xib文件的使用//// Created by apple on 14-5-24.// Copyright (c) 2014年 itcase. All rights reserved.//#import "YYViewController.h"#import "YYapp.h"@interface YYViewController ()@property(nonatomic,strong)NSArray *app;@end@implementation YYViewController//1.加載數據信息-(NSArray *)app{  if (!_app) {    NSString *path=[[NSBundle mainBundle]pathForResource:@"app.plist" ofType:nil];    NSArray *temparray=[NSArray arrayWithContentsOfFile:path];        //字典轉模型    NSMutableArray *arrayM=[NSMutableArray array ];    for (NSDictionary *dict in temparray) {      [arrayM addObject:[YYapp appWithDict:dict]];    }    _app=arrayM;  }  return _app;}//創建界面原型- (void)viewDidLoad{  [super viewDidLoad];  NSLog(@"%d",self.app.count);    //九宮格布局  int totalloc=3;  CGFloat appviewW=80;  CGFloat appviewH=90;  CGFloat margin=(self.view.frame.size.width-totalloc*appviewW)/(totalloc+1);    int count=self.app.count;  for (int i=0; i<count; i++) {        int row=i/totalloc;    int loc=i%totalloc;    CGFloat appviewX=margin + (margin +appviewW)*loc;    CGFloat appviewY=margin + (margin +appviewH)*row;    YYapp *app=self.app[i];        //拿出xib視圖    NSArray *apparray= [[NSBundle mainBundle]loadNibNamed:@"appxib" owner:nil options:nil];    UIView *appview=[apparray firstObject];    //加載視圖    appview.frame=CGRectMake(appviewX, appviewY, appviewW, appviewH);        UIImageView *appviewImg=(UIImageView *)[appview viewWithTag:1];    appviewImg.image=app.image;        UILabel *appviewlab=(UILabel *)[appview viewWithTag:2];    appviewlab.text=app.name;        UIButton *appviewbtn=(UIButton *)[appview viewWithTag:3];    [appviewbtn addTarget:self action:@selector(appviewbtnClick:) forControlEvents:UIControlEventTouchUpInside];    appviewbtn.tag=i;        [self.view addSubview:appview];  }}/**按鈕的點擊事件*/-(void)appviewbtnClick:(UIButton *)btn{  YYapp *apps=self.app[btn.tag];  UILabel *showlab=[[UILabel alloc]initWithFrame:CGRectMake(60, 450, 200, 20)];  [showlab setText:[NSString stringWithFormat: @"%@下載成功",apps.name]];  [showlab setBackgroundColor:[UIColor lightGrayColor]];  [self.view addSubview:showlab];  showlab.alpha=1.0;    //簡單的動畫效果  [UIView animateWithDuration:2.0 animations:^{    showlab.alpha=0;  } completion:^(BOOL finished) {    [showlab removeFromSuperview];  }];}@end

運行效果:

三、對xib進行連線示例

1.連線示例

新建一個xib對應的視圖類,繼承自Uiview
在xib界面右上角與新建的視圖類進行關聯
把xib和視圖類進行連線
注意:在使用中把weak改成為強引用。否則...

2.連線后的代碼示例

YYViewController.m文件代碼如下:

//// YYViewController.m// 10-xib文件的使用//// Created by apple on 14-5-24.// Copyright (c) 2014年 itcase. All rights reserved.//#import "YYViewController.h"#import "YYapp.h"#import "YYappview.h"@interface YYViewController ()@property(nonatomic,strong)NSArray *app;@end@implementation YYViewController//1.加載數據信息-(NSArray *)app{  if (!_app) {    NSString *path=[[NSBundle mainBundle]pathForResource:@"app.plist" ofType:nil];    NSArray *temparray=[NSArray arrayWithContentsOfFile:path];        //字典轉模型    NSMutableArray *arrayM=[NSMutableArray array ];    for (NSDictionary *dict in temparray) {      [arrayM addObject:[YYapp appWithDict:dict]];    }    _app=arrayM;  }  return _app;}//創建界面原型- (void)viewDidLoad{  [super viewDidLoad];  NSLog(@"%d",self.app.count);    //九宮格布局  int totalloc=3;  CGFloat appviewW=80;  CGFloat appviewH=90;  CGFloat margin=(self.view.frame.size.width-totalloc*appviewW)/(totalloc+1);    int count=self.app.count;  for (int i=0; i<count; i++) {        int row=i/totalloc;    int loc=i%totalloc;    CGFloat appviewX=margin + (margin +appviewW)*loc;    CGFloat appviewY=margin + (margin +appviewH)*row;    YYapp *app=self.app[i];        //拿出xib視圖    NSArray *apparray= [[NSBundle mainBundle]loadNibNamed:@"appxib" owner:nil options:nil];        //注意這里的類型名!    //UIView *appview=[apparray firstObject];    YYappview *appview=[apparray firstObject];        //加載視圖    appview.frame=CGRectMake(appviewX, appviewY, appviewW, appviewH);     [self.view addSubview:appview];        appview.appimg.image=app.image;    appview.applab.text=app.name;    appview.appbtn.tag=i;        [ appview.appbtn addTarget:self action:@selector(appviewbtnClick:) forControlEvents:UIControlEventTouchUpInside];      }}/**按鈕的點擊事件*/-(void)appviewbtnClick:(UIButton *)btn{  YYapp *apps=self.app[btn.tag];  UILabel *showlab=[[UILabel alloc]initWithFrame:CGRectMake(60, 450, 200, 20)];  [showlab setText:[NSString stringWithFormat: @"%@下載成功",apps.name]];  [showlab setBackgroundColor:[UIColor lightGrayColor]];  [self.view addSubview:showlab];  showlab.alpha=1.0;    //簡單的動畫效果  [UIView animateWithDuration:2.0 animations:^{    showlab.alpha=0;  } completion:^(BOOL finished) {    [showlab removeFromSuperview];  }];}@end

YYappview.h文件代碼(已經連線)

#import <UIKit/UIKit.h>@interface YYappview : UIView@property (strong, nonatomic) IBOutlet UIImageView *appimg;@property (strong, nonatomic) IBOutlet UILabel *applab;@property (strong, nonatomic) IBOutlet UIButton *appbtn;@end

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
九九热视频这里只有精品| 欧美激情一区二区三级高清视频| 国产成人亚洲综合91| 久久久免费在线观看| 亚洲人成电影网站| 日韩中文字幕在线播放| 亚洲日本欧美中文幕| 中文字幕v亚洲ⅴv天堂| 97精品免费视频| 欧美日本中文字幕| 美女啪啪无遮挡免费久久网站| 亚洲视频网站在线观看| 欧美黑人性视频| 亚洲乱码av中文一区二区| 国产精品久久久久久久久免费| 日韩在线观看视频免费| 中文字幕成人精品久久不卡| 国产一区二区在线免费| 国产精品91视频| 日韩小视频在线| 国产欧美一区二区三区在线| 欧美日韩国产一区二区| 亚洲精品97久久| 亚洲精品美女在线观看播放| 色噜噜狠狠色综合网图区| 国产日韩欧美夫妻视频在线观看| 国产精品中文字幕在线| 在线观看91久久久久久| 亚洲精品av在线播放| 日韩在线视频免费观看高清中文| 久久在线观看视频| 日韩欧美一区二区三区| 日本中文字幕成人| 亚洲免费中文字幕| 欧洲中文字幕国产精品| 久久久欧美精品| 亚州精品天堂中文字幕| 日韩欧美福利视频| 国产成人欧美在线观看| 欧美孕妇毛茸茸xxxx| 亚洲激情在线观看| 国产亚洲人成a一在线v站| 57pao成人国产永久免费| 成人国产精品久久久| 亚洲成人免费在线视频| 国产精品视频精品视频| 久久久亚洲精品视频| 亚洲黄色在线看| 国产一区二区美女视频| 国产精品久久中文| 国产精品久久久久久网站| 欧美精品一本久久男人的天堂| 亚洲福利视频免费观看| 欧美有码在线观看| 亚洲第一免费网站| 另类美女黄大片| 成人做爰www免费看视频网站| 精品亚洲国产成av人片传媒| 欧美电影免费观看| 久久在线免费观看视频| 91啪国产在线| 久久人人爽人人爽人人片av高请| 欧美在线性爱视频| 色无极影院亚洲| 2019中文字幕在线| 国产精品扒开腿做爽爽爽男男| 国产91色在线免费| 国内精品小视频在线观看| 欧美成人高清视频| 亚洲欧美日韩一区二区在线| 蜜月aⅴ免费一区二区三区| 国产精品pans私拍| 色先锋久久影院av| 国产午夜精品麻豆| 国产日韩欧美综合| 日韩免费观看高清| 成人做爽爽免费视频| 国产国语刺激对白av不卡| 26uuu亚洲国产精品| 日韩欧美精品网站| 亚洲欧美国产精品久久久久久久| 538国产精品一区二区在线| 欧美色videos| 亚洲天堂av网| 最近中文字幕日韩精品| 亚洲欧美日本另类| 永久免费看mv网站入口亚洲| 欧美激情第三页| 国产一区二区三区四区福利| 欧美激情亚洲精品| 欧美孕妇性xx| 久久精品这里热有精品| 国产精品久久久久aaaa九色| 91国内精品久久| 亚洲精品日韩丝袜精品| 亚洲一区二区日本| 国产91在线播放精品91| 一本色道久久88亚洲综合88| 亚洲天堂精品在线| 国产精品久久久久久久久男| 美乳少妇欧美精品| 精品久久久久久中文字幕一区奶水| 欧美乱妇高清无乱码| 97在线看免费观看视频在线观看| 日韩av影视在线| 日本高清久久天堂| 精品无码久久久久久国产| 91精品国产综合久久久久久久久| 亚洲xxxx做受欧美| www亚洲精品| 亚洲视频一区二区| 亚洲欧美日韩第一区| 欧美激情综合色综合啪啪五月| 综合久久五月天| 国产婷婷97碰碰久久人人蜜臀| 色综合天天综合网国产成人网| 亚洲欧洲在线看| 国产精品三级网站| 在线电影中文日韩| 91av在线看| 欧美在线国产精品| 在线激情影院一区| 中文日韩电影网站| 国产成人亚洲精品| 在线a欧美视频| 国产精品自拍偷拍| 亚洲激情久久久| 久久艳片www.17c.com| 国产精品v片在线观看不卡| 亚洲欧洲在线视频| 国产精品电影观看| 久久久久久国产精品| 欧美激情亚洲一区| 成人黄色在线观看| 国内精品国产三级国产在线专| 欧美亚洲成人精品| 日韩精品视频在线观看免费| 亚洲欧洲免费视频| 欧洲中文字幕国产精品| 欧美人与性动交a欧美精品| 欧美激情手机在线视频| 国产精品日本精品| 91免费国产网站| 国产精品99一区| 黑人与娇小精品av专区| 国产91九色视频| 狠狠躁夜夜躁久久躁别揉| 国产欧美日韩免费| 亚洲成人教育av| 亚洲激情第一页| 亚洲第一福利网站| 国内偷自视频区视频综合| 热re99久久精品国产66热| 日本一欧美一欧美一亚洲视频| 国产日韩av在线播放| 国产中文字幕亚洲| 伊人久久五月天| 国产精品揄拍500视频| 欧美日韩一区二区精品| 亚洲欧美日本伦理| 欧美激情网站在线观看| 国产精品爱久久久久久久| 国产精品视频网| 日产精品99久久久久久|