iOS開發1--加載Bundle圖片








iOS開發1

項目說明

1.創建Bundle文件

2.在iOS項目中使用Bundle文件

3.創建圖片顯示程序,用戶點擊切換圖片


1.創建Bundle文件

Bundle文件就是資源文件包。我們將許多圖片、XIB、文本文件組織在一起,打包成一個Bundle文件,方便其他項目引用其中包內的資源。

·打開Xcode,選擇macOS,Bundle,點擊next

·Product Name爲NickWangSourcesBundle

·如下圖所示,將系統設置成iOS,將Build Active Architecture Only中Debug改爲NO

這裏寫圖片描述

·設置User-Defined中COMBINE_HIDPI_IMAGES設置爲NO

這裏寫圖片描述

·設置Skip Install爲NO,並刪除Installation Directory的值

這裏寫圖片描述
這裏寫圖片描述

·將資源文件添加至SourcesBundle文件夾中,在彈出的菜單中記得勾選“Add to targets”選項,默認已勾選

這裏寫圖片描述

·編譯生成Bundle文件,選擇使用的機型,這裏使用“Generic iOS Device”,點擊command+b進行編輯,生成Bundle資源文件。

這裏寫圖片描述
這裏寫圖片描述


2.在iOS中使用Bundle文件

創建iOS程序,然後使用UIImageView控件將Bundle中的圖片資源進行顯示,並在每一次點擊後更換圖片

·重新打開Xcode,File->New->Project->iOS->Application->single View App,注意這裏使用的是Object-C語言,在創建時不要選成了Swift。

·將剛纔製作好的Bundle拖到該項目中

這裏寫圖片描述

·點擊左邊的“Main.storyboard”,出現如下圖所示界面,在右下角輸入“image”,將“UIImageView”拖拽到界面中,設置合適大小

這裏寫圖片描述

·選中“Main.storyboard”後點擊右上角的“”按鈕,會彈出如下視圖,光標在UIImageView上按住“control”並拖動至@interface中創建Outlet屬性。

這裏寫圖片描述

·從Bundle中加載圖片,保存在數組array中

//在@interface中創建數組用於存儲圖片
@property NSArray *array; 
//在@implementation中ViewDidLoad函數中從Bundle中讀取圖片
//方法arrayWithObjects向NSArray發送消息創建數組,參數爲數組的元素
//nil表示數組的結束,數組中有三個元素,分別是從Bundle中加載的圖片
_array = [NSArray arrayWithObjects:
             [UIImage imageNamed:@"NickWangSourcesBundle.bundle/uzi.png"],
             [UIImage imageNamed:@"NickWangSourcesBundle.bundle/uzi2.png"],
             [UIImage imageNamed:@"NickWangSourcesBundle.bundle/uzi3.png"],
             nil];

·初始化UIImageView控件,並設置初始圖片,圖片填充方式,是否可以進行用戶交互,以及設置交互的響應函數

//在@interface中創建數組中圖片的索引變量
@property NSInteger imgIndex;
//在@在@implementation中ViewDidLoad函數中
_imgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 300, 500)];  //初始化
    _imgView.image = [_array objectAtIndex:_imgIndex]; //設置初始圖片
    [self.view addSubview:_imgView]; //加載視圖
    _imgView.contentMode = UIViewContentModeScaleAspectFill; //設置圖片填充方式
    [_imgView setUserInteractionEnabled:YES]; //開啓用戶交互
    [_imgView addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(clickCategory:)]]; // 設置交互的響應函數clickCategory:
}

·在響應函數中,只需要修改控件填充的圖片即可

-(void)clickCategory:(UITapGestureRecognizer *)gestureRecognizer
{
    _imgView.image = [_array objectAtIndex:(++_imgIndex)%3]; //因爲只有3張圖片,和3取餘數,爲了點擊多次後回到第一張
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章