iOS UI基础-3.0图片浏览器及plist使用

需求:

1.显示当前图片序号/总图片数

2.显示图片

3.上一张图片、下一张图片转换

4.显示图片描述

下面用代码来实现

//
//  UYViewController.m
//  3.0图片查看器
//
//  Created by jiangys on 15/8/19.
//  Copyright (c) 2015年 uxiaoyuan. All rights reserved.
//

#import "UYViewController.h"

@interface UYViewController ()
@property(nonatomic,strong) UILabel *noLabel;
@property(nonatomic,strong) UIImageView *iconImage;
@property(nonatomic,strong) UILabel *descLable;
@property(nonatomic,strong) UIButton *leftButton;
@property(nonatomic,strong) UIButton *rightButton;

//显示当前的照片索引
@property(nonatomic,assign) int index;

//图片信息的数组
@property(nonatomic,strong) NSArray *imageList;

@end

@implementation UYViewController

-(NSArray *)imageList
{
    if (_imageList==nil) {
        NSString *path=[[NSBundle mainBundle] pathForResource:@"ImageList" ofType:@"plist"];

        //在OC中,通常需要完整的路径
        _imageList=[NSArray arrayWithContentsOfFile:path];
    }
    return _imageList;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    //1.索引
    _noLabel=[[UILabel alloc] initWithFrame:CGRectMake(0, 20, self.view.frame.size.width, 40)];
    _noLabel.text=@"1/5";
    _noLabel.textAlignment=NSTextAlignmentCenter;
    [self.view addSubview:_noLabel];

    //2.图片
    CGFloat imageW=200;
    CGFloat imageH=200;
    CGFloat imageX=(self.view.frame.size.width-imageW)*0.5;
    CGFloat imageY=CGRectGetMidY(self.noLabel.frame)+20;

    _iconImage=[[UIImageView alloc] initWithFrame:CGRectMake(imageX, imageY, imageW, imageH)];
    _iconImage.image=[UIImage imageNamed:@"biaoqingdi"];
    [self.view addSubview:_iconImage];

    //3.描述
    _descLable=[[UILabel alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(self.iconImage.frame), self.view.frame.size.width, 100)];
    _descLable.text=@"测试的拉";
    _descLable.textAlignment=NSTextAlignmentCenter;
    //需要Label具有“足够的高度”,不限制显示的行数
    _descLable.numberOfLines=0;
    [self.view addSubview:_descLable];

    //4.左边的按钮
    _leftButton=[[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
    CGFloat centerX=self.iconImage.frame.origin.x*0.5;
    CGFloat centerY=self.iconImage.center.y;
    _leftButton.center=CGPointMake(centerX, centerY);
    _leftButton.tag=-1;

    [_leftButton setBackgroundImage:[UIImage imageNamed:@"left_normal"] forState:UIControlStateNormal];
    [_leftButton setBackgroundImage:[UIImage imageNamed:@"left_highlighted"] forState:UIControlStateHighlighted];
    [_leftButton addTarget:self action:@selector(clickButton:) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:_leftButton];

    //5.右边的按钮
    _rightButton=[[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
    _rightButton.center=CGPointMake(self.view.bounds.size.width-centerX, centerY);

    [_rightButton setBackgroundImage:[UIImage imageNamed:@"right_normal"] forState:UIControlStateNormal];
    [_rightButton setBackgroundImage:[UIImage imageNamed:@"rigth_highlighted"] forState:UIControlStateHighlighted];
    [self.view addSubview:_rightButton];
    _rightButton.tag=1;
    [_rightButton addTarget:self action:@selector(clickButton:) forControlEvents:UIControlEventTouchUpInside];

    [self showPhotoInfo];
}

-(void)clickButton:(UIButton *)button
{
    //根据按钮调整当前显示图片的索引
    self.index+=(int)button.tag;
    [self showPhotoInfo];
}

-(void)showPhotoInfo
{
    self.noLabel.text=[NSString stringWithFormat:@"%d/%d",self.index+1,5];
    self.iconImage.image=[UIImage imageNamed:self.imageList[self.index][@"name"]];
    self.descLable.text=self.imageList[self.index][@"desc"];

    self.rightButton.enabled=(self.index!=4);
    self.leftButton.enabled=(self.index!=0);
}

@end

plist文件的使用:

1.创建一个plist

2.填写为ImageList.plist

3.填入数据

4.完成

时间: 2024-10-23 13:05:51

iOS UI基础-3.0图片浏览器及plist使用的相关文章

iOS UI基础-16.0 UIButton

回归自然,UIButton是我们使用最频烦的一个控件.下面,对该控件的一些常用方法进行一些总结. UIButton *payStateBtn = [UIButton buttonWithType:UIButtonTypeCustom]; payStateBtn.frame = CGRectMake(12, 10, ScreenWidth - 50, 22); // 设置字体居中方向 payStateBtn.contentHorizontalAlignment = UIControlContent

iOS UI基础-9.0 UITableView基础

在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView.UITableView继承自UIScrollView,因此支持垂直滚动,而且性能极佳. UITableView有两种样式: 一列显示:UITableViewStylePlain 分组显示:UITableViewStyleGrouped tableView展示数据的过程 1.调用数据源的下面方法得知一共有多少组数据 - (NSInteger)numberOfSectionsInTableView:(UITableView

iOS UI基础-7.0 UIScrollView

概述 移动设备的屏幕大小是极其有限的,因此直接展示在用户眼前的内容也相当有限.当展示的内容较多,超出一个屏幕时,用户可通过滚动手势来查看屏幕以外的内容,普通的UIView不具备滚动功能,不能显示过多的内容.UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容 UIScrollView的常见属性 UIScrollView的常用代理方法 UIScrollView的缩放 UIScrollView使用 基本使用 UIScrollView的用法很简单,将

iOS UI基础-17.0 UILable之NSMutableAttributedString

在iOS开发中,常常会有一段文字显示不同的颜色和字体,或者给某几个文字加删除线或下划线的需求.之前在网上找了一些资料,有的是重绘UILabel的textLayer,有的是用html5实现的,都比较麻烦,而且很多UILabel的属性也不起作用了,效果都不理想.后来了解到NSMuttableAttstring(带属性的字符串),上面的一些需求都可以很简便的实现. NSMuttableAttstring 方法 为某一范围内文字设置多个属性 - (void)setAttributes:(NSDictio

iOS UI基础-10.0 QQ聊天布局之键盘及文本使用

要实现的效果:   这里只说用到的几个知识点 1.图片包含文字 在设置文字的Frame的时候,使用背景(按钮)的尺寸,文字使用了内边距 背景图片,使用拉伸 /** * 返回一张可以随意拉伸不变形的图片 * * @param name 图片名字 */ + (UIImage *)resizableImage:(NSString *)name { UIImage *normal = [UIImage imageNamed:name]; CGFloat w = normal.size.width * 0

iOS UI基础-13.0 数据存储

应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒 应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Layer) 模拟器应用沙盒的根路径在: (apple是用户名, 6.0是模拟器版本) /Users/apple/Library/Application Support/iPhone Simulator/6.0/Applications 应用沙盒结构分析 应用程序包:(上图中的Layer)包含了所有的资源

iOS UI基础-6.0 UIActionSheet的使用

UIActionSheet是在iOS弹出的选择按钮项,可以添加多项,并为每项添加点击事件. 使用 1.需要实现UIActionSheetDelegate  协议 @interface NJWisdomCardDetailViewController ()<UIActionSheetDelegate> @end 2.弹出选择按钮框 - (void)showSheet{ UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitl

iOS UI基础-15.0 UIWebView

WebView介绍 知识点: 代码创建一个UIWebView OC调用html的js js页面调用OC 相关代码实现 代码创建一个UIWebView // 1.webView UIWebView *webView = [[UIWebView alloc] init]; webView.frame = self.view.bounds; webView.delegate = self; // 伸缩页面至填充整个webView webView.scalesPageToFit = YES; // 隐藏

iOS UI基础-1.0加法计算器

1.打开Xcode,新建一个项目 2.Single View Application是最适合初学者的模板 3.填写该应用相关信息 4.搭建UI界面 项目创建完毕后,自动帮我们做了很多配置,也自动生成了很多文件 还自动添加了开发所依赖的框架 项目中这么多文件,哪些是影响着UI界面的呢?在iOS5之前,苹果使用xib文件来描述UI界面,在iOS5之后,苹果采取了更加强大和先进的storyboard文件来描述界面(Xcode5是基于iOS7的)因此,可以得出结论:修改项目中的Main.storyboa