iOS学习之路-简易图片浏览器
2016-01-07 11:44
435 查看
这是之前学习的内容,因为没有来得及总结,一直拖到现在。本人用的是最新的xcode7.2,而当时看的视频教程是用xcode 5。界面可能会有点不一样,但感觉影响大不。这是一个比较简易的图片浏览器,用户通过点击上一张和下一张图片,进行切换图片和显示图片对应的文字描述。下面,开始吧!
一、功能分析
(1)点击左右箭头切换序号,图片和描述。
(2)如果是第一张图片,则左边的箭头变灰色,不能再点击。
(3)如果是最后一张图片,则右边的箭头变灰色,不能再点击。
二、涉及到的知识点
(1)@property(nonatomic,strong) NSArray *imageData;
strong:用于一般对象。与之对应的weak:用于UI控件。
(2)为了方便使用以及维护,当我们使用plist文件时,一般将plist文件中的key定义为宏定义。好处是,当plist文件更改后,不用更改代码中对应的key值。
#define KIMImageKey @"image"
#define KIMDeskey @"desc"
(3)NSBundle *bundle = [NSBundle mainBundle];
一个Bundle代表一个文件夹。Bundle的具体使用详解,在我的另外一篇转载的文章中。
(4)plist文件的使用。
三、plist文件的创建和注意事项
(1)创建一个plist文件。
1)可以直接右键项目,然后选择NewFile创建一个plist。
2)利用xcode的快捷键
Command+N(如果是普通键盘,则对应的是win键)。进入创建界面后,操作如下图。
plist文件名,根据自己喜好命名吧。
3)创建完毕后,项目文件就会出现相应的plist文件。
(2)添加图片到xcode
点击项目的Assets.xcassets文件。直接把图片拉进右边箭头所指的方向即可。
(3)往plist文件添加内容
① Root的Type要为Array集合。
② 点击Root右边的+号添加子项。并把该子项的Type设置为Dictionary字典类型。
③ 点击Item 右边的+号添加它的子项,并将imageKey和desc的Type设置为String类型,value分别放图片的名称和文本。
ps: item 从0开始。不然有可能读取不了对应的key和value。
四、设置上一张和下一张按钮的图片
左边的图片是设置在普通状态的图片,Default为默认的样式,Image为普通样式下的图片。右边的图片是设置在高亮(点击按钮)时的样式,image为高亮时(点击按钮)时的图片。
五、运行结果
六、代码
七、总结
虽然这个例子比较简单,很基础,没有难点,但对于刚开始接触的人来说,还是有学习意义的,毕竟从零开始嘛。通过这个例子,需要掌握的,一是要学会用Bundle获得plist文件的全路径,从plist文件中读取数据。二是根据用户的点击,显示相对应的内容。
一、功能分析
(1)点击左右箭头切换序号,图片和描述。
(2)如果是第一张图片,则左边的箭头变灰色,不能再点击。
(3)如果是最后一张图片,则右边的箭头变灰色,不能再点击。
二、涉及到的知识点
(1)@property(nonatomic,strong) NSArray *imageData;
strong:用于一般对象。与之对应的weak:用于UI控件。
(2)为了方便使用以及维护,当我们使用plist文件时,一般将plist文件中的key定义为宏定义。好处是,当plist文件更改后,不用更改代码中对应的key值。
#define KIMImageKey @"image"
#define KIMDeskey @"desc"
(3)NSBundle *bundle = [NSBundle mainBundle];
一个Bundle代表一个文件夹。Bundle的具体使用详解,在我的另外一篇转载的文章中。
(4)plist文件的使用。
三、plist文件的创建和注意事项
(1)创建一个plist文件。
1)可以直接右键项目,然后选择NewFile创建一个plist。
2)利用xcode的快捷键
Command+N(如果是普通键盘,则对应的是win键)。进入创建界面后,操作如下图。
plist文件名,根据自己喜好命名吧。
3)创建完毕后,项目文件就会出现相应的plist文件。
(2)添加图片到xcode
点击项目的Assets.xcassets文件。直接把图片拉进右边箭头所指的方向即可。
(3)往plist文件添加内容
① Root的Type要为Array集合。
② 点击Root右边的+号添加子项。并把该子项的Type设置为Dictionary字典类型。
③ 点击Item 右边的+号添加它的子项,并将imageKey和desc的Type设置为String类型,value分别放图片的名称和文本。
ps: item 从0开始。不然有可能读取不了对应的key和value。
四、设置上一张和下一张按钮的图片
左边的图片是设置在普通状态的图片,Default为默认的样式,Image为普通样式下的图片。右边的图片是设置在高亮(点击按钮)时的样式,image为高亮时(点击按钮)时的图片。
五、运行结果
六、代码
#import "ViewController.h"
// 宏定义 #define KIMImageKey @"image" #define KIMDeskey @"desc" @interface ViewController () - (IBAction)previous; - (IBAction)next; @property (weak, nonatomic) IBOutlet UIImageView *imageView; // 图片 @property (weak, nonatomic) IBOutlet UILabel *numLabel; // 显示图片的张数的标签 @property (weak, nonatomic) IBOutlet UILabel *descLabel; // 显示图片的描述 @property (weak, nonatomic) IBOutlet UIButton *previousBtn; // 上一张按钮 @property (weak, nonatomic) IBOutlet UIButton *nextBtn; // 下一张按钮 @property(nonatomic,assign)int index; // 记录当前显示的是第几张图片 @property(nonatomic,strong)NSArray *imageData; // 图片数据集合 @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [self changeData]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } -(NSArray *)imageData{ if(_imageData == nil){ // 判断是否从未初始化 NSBundle *bundle = [NSBundle mainBundle]; // 一个Bundle代表一个文件夹,File代表全路径 // 获得imageData.plist的全路径 NSString *path = [bundle pathForResource:@"imageData.plist" ofType:nil]; _imageData = [NSArray arrayWithContentsOfFile:path]; } return _imageData; } #pragma mark 改变数据 -(void)changeData{ // 1.改变数据 self.numLabel.text = [NSString stringWithFormat:@"%d/%lu",self.index+1,(unsigned long)self.imageData.count]; // 2.取出index对应的字典数据 NSDictionary *imageDict = self.imageData[self.index]; // 3.设置图片 self.imageView.image = [UIImage imageNamed:imageDict[KIMImageKey]]; // 4.设置描述 self.descLabel.text = imageDict[KIMDeskey]; // 5.改变按钮的状态 self.previousBtn.enabled = (self.index!=0); self.nextBtn.enabled = (self.index!=self.imageData.count-1); } #pragma mark 上一张 - (IBAction)previous { // 1.减小索引 self.index--; // 2.改变数据 [self changeData]; } #pragma mark 下一张 - (IBAction)next { // 1.增加索引 self.index++; [self changeData]; } @end
七、总结
虽然这个例子比较简单,很基础,没有难点,但对于刚开始接触的人来说,还是有学习意义的,毕竟从零开始嘛。通过这个例子,需要掌握的,一是要学会用Bundle获得plist文件的全路径,从plist文件中读取数据。二是根据用户的点击,显示相对应的内容。
相关文章推荐
- iOS开发错误日志
- IOS探索之从拍照中获取图像对应的ALAsset
- 自定义iOS上双击Home键截屏切换,保护应用程序隐私
- iOS Newbie - Xcode 7 & iOS 9 前篇(非技术)
- iOS应用程序的生命周期
- iOS 百度地图_回调不走_onGetGeoCodeResult不执行
- Mac&iOS Socket
- 浅谈iOS Push 在iOS6/7/8/9中的进化
- IOS 枚举定义
- 微软自拍应用iOS版发布
- iOS类别(Category)和扩展(Extension)
- ios 隐藏顶部状态栏
- IOS后台运行 之 后台播放音乐
- IOS为文字和图片添加阴影效果
- iOS每日一记----------密码输入工具 InputPasswordView
- ios9下,使用storyboard进行多人合作新改变/
- iOS 摇一摇
- IOS开发NSBundle对象使用详解
- iOS 报错问题大搜集(常更)
- ios开发必备第三方库