iOS -- 图片浏览器2(用NSDictionary来存储数据)

// strong : 一般对象  weak : UI控件
#define IconKey @"icon"
#define DescKey @"desc"
#import "ViewController.h"
@interface ViewController ()
- (IBAction)previous;
- (IBAction)next;
@property (weak, nonatomic) IBOutlet UIButton *previousBtn;
@property (weak, nonatomic) IBOutlet UIButton *nextBtn;
@property (weak, nonatomic) IBOutlet UILabel *noLabel;
@property (weak, nonatomic) IBOutlet UIImageView *iconView;
@property (weak, nonatomic) IBOutlet UILabel *descLabel;
// 记录当前显示的是第几张图片
@property (nonatomic, assign) int index;
// 图片数据集合
@property (nonatomic, strong) NSArray *imageData;
@end
@implementation MJViewController
- (void)viewDidLoad
{
    [super viewDidLoad];
    [self changeData];
}
- (NSArray *)imageData
{
    if (_imageData == nil) { // 从未初始化
        // 初始化数据
        NSMutableDictionary *image1 = [NSMutableDictionary dictionary];
        image1[IconKey] = @"biaoqingdi";
        image1[DescKey] = @"在他面前,其他神马表情都弱爆了!";
        NSMutableDictionary *image2 = [NSMutableDictionary dictionary];
        image2[IconKey] = @"wangba";
        image2[DescKey] = @"哥们为什么选八号呢";
        NSMutableDictionary *image3 = [NSMutableDictionary dictionary];
        image3[IconKey] = @"bingli";
        image3[DescKey] = @"这也忒狠了";
        NSMutableDictionary *image4 = [NSMutableDictionary dictionary];
        image4[IconKey] = @"chiniupa";
        image4[DescKey] = @"chiniupa";
        NSMutableDictionary *image5 = [NSMutableDictionary dictionary];
        image5[IconKey] = @"danteng";
        image5[DescKey] = @"亲,你能改下你的网名么?哈哈";
//        NSMutableDictionary *image6 = [NSMutableDictionary dictionary];
//        image6[IconKey] = @"chiniupa";
//        image6[DescKey] = @"新增的数据";
        _imageData = @[image1, image2, image3, image4, image5];
    }
    return _imageData;
}
#pragma mark 改变数据
- (void)changeData
{
    // 1.改变数据
    self.noLabel.text = [NSString stringWithFormat:@"%d/%d", self.index + 1, self.imageData.count];
    // 2.取出index对应的字典数据
    NSDictionary *imageDict = self.imageData[self.index];
    // 3.设置图片
    self.iconView.image = [UIImage imageNamed:imageDict[IconKey]];
    // 4.设置描述
    self.descLabel.text = imageDict[DescKey];
    // 2.改变按钮状态
    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++; //0
    // 2.根据索引显示对应的内容
    [self changeData];
}
@end

时间: 2024-08-30 12:59:00

iOS -- 图片浏览器2(用NSDictionary来存储数据)的相关文章

iOS图片浏览器控件 放大,缩小,UIScrollView

GitHub地址 https://github.com/JerryWanXuJie/XJAlbum 图片浏览器主要通过 UIScrollView 实现  在一个大的ScollView里面套 n个ScollView UIScrollView里主要是有两个属性,contentSize和contentoffset , contentSize 是设定UIScrollView的可交互的大小,contentoffset偏移量 设置第一层 UIScollView 主要是设置 contentSize 和 con

iOS -- 图片浏览器3(将数据存储到plist文件中)

// 将数据存入plist文件中#define IconKey @"icon"#define DescKey @"desc"#import "ViewController.h"@interface ViewController ()- (IBAction)previous;- (IBAction)next;@property (weak, nonatomic) IBOutlet UIButton *previousBtn;@property (w

iOS -- 图片浏览器

// strong : 一般对象// weak : UI控件#define MJIconKey @"icon"#define MJDescKey @"desc"#import "MJViewController.h"@interface MJViewController ()- (IBAction)previous;- (IBAction)next;@property (weak, nonatomic) IBOutlet UIButton *pr

IOS开发系列--无限循环的图片浏览器

--UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件都介绍一遍确实没有必要,所谓授人以鱼不如授人以渔,这里会尽可能让大家明白其中的原理,找一些典型的控件进行说明,这样一来大家就可以触类旁通.今天我们主要来看一下UIScrollView的内容: UIView UIScrollView 实战--图片浏览器 UIView 在熟悉UIScrollView之前

iOS基础控件之 图片浏览器

知识准备: UIbutton 和UIimageview的异同: 相同点:> 都能显示图片 不同点:> UIButton默认情况就能监听点击事件,而UIImageView默认情况下不能   > UIButton可以在不同状态下显示不同的图片      > UIButton既能显示文字,又能显示图片 如何选择:> UIButton:需要显示图片,点击图片后需要做一些特定的操作 > UIImageView:仅仅需要显示图片,点击图片后不需要做任何事情 NSArray和NSDi

[iOS基础控件 - 3.3] 图片浏览器

需求: 1.显示当前图片序号/总图片数 2.显示图片 3.上一张图片.下一张图片转换 4.显示图片描述 A.数据的加载方式 1.逐个加载.处理 2.使用数组.字典分离数据和逻辑 3.延迟加载 将初始化放在getter初始化,当需要的数据不存在才初始化 4.使用plist 存储数据在外部文件,剥离数据和逻辑代码 不要使用带”info”的名字,会跟系统文件混淆 a.使用NSBundle获得手机全路径 1 if (_imageData == nil) { 2 // 初始化数据 3 // File: 全

iOS 图片本地存储、本地获取、本地删除

在iOS开发中.经常用到图片的本地化. iOS 图片本地存储.本地获取.本地删除,可以通过以下类方法实现. p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #008400; background-color: #ffffff } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color

IOS开发-图片浏览器实例-UIImageView的使用-懒加载-plist文件的使用

一.本文概述 一个使用UIImageView.UILabel.UIButton实现的图片浏览器的实例,界面如图:   功能描述: 1. 点击左右箭头切换图片.图片描述.图片序号: 2.第一张图片时左箭头不能点击 3.最后一张图片时右箭头不能点击 4.点击设置按钮出现一个可设置的界面(上图中黄色背景的部分)可以设置模式和对图片的缩放 实现概述: 1.搭建UI界面,使用UIImageView控件显示图片 2. 监听个按钮的点击 3. 切换图片内容,描述,序号.背景色及UIImageView的tran

ios 图片的两种加载方式

控件加载图片,plist,懒加载,序列帧动画,添加动画效果. IOS中有2种加载图片的方式. 方式一:有缓存(图片所占用的内存会一直停留在程序中) [objc] view plaincopy + (UIImage *)imageNamed:(NSString *)name; 注:必须是png文件.需要把图片添加到 images.xcassets中 例如: [objc] view plaincopy @property (weak, nonatomic) IBOutlet UIImageView