一.项目要求:制作一个浏览图片的Demo,要求包含夜间模式,以及改变图片大小,能够显示不同的图片描述

二.开发步骤:
1、在storyboard上添加一个空白的View,然后添加”设置“按钮,添加image View,图片序号Label,图片描述Label,更改图片Slider控件。
2、编写sliderValueChanged方法
3、在storyboard再添加一个空白的View,在新增的View上面添加Switch控件,用于夜间模式,添加Slider控件,用于改变图片的大小。
4、编写setting 方法,编写nightModel方法,编写imageSizeChange方法
三.详细步骤
1.打开Xcode创建一个新工程,点击storyboard,在上面先后添加View,Button,Label,Slider控件如图:
2.将用到的图片放在supporting file文件中
3.添加plist文件

4.设置各个控件如图,并连线实现方法
5.添加夜间模式和改变图片大小的功能
 
四.代码
 
//
//  ViewController.h
//  图片浏览器
//
//  Created by yongjianyu on 15/12/1.
//  Copyright (c) 2015年 yongjianyu. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@property (weak, nonatomic) IBOutlet UILabel *imageNum;

@property (weak, nonatomic) IBOutlet UILabel *imageDesc;

@property (weak, nonatomic) IBOutlet UIView *settingView;

- (IBAction)setting;

- (IBAction)nightModel:(UISwitch *)sender;

- (IBAction)imageSizeChange:(UISlider *)sender;

@end

  

//
//  ViewController.m
//  图片浏览器
//
//  Created by yongjianyu on 15/12/1.
//  Copyright (c) 2015年 yongjianyu. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (IBAction)sliderValueChanged:(UISlider *)sender {

    //1.设置中间的图片
    NSString *imageName = [NSString stringWithFormat:@"%.f.jpg",sender.value];
    _imageView.image = [UIImage imageNamed:imageName];
    //2.设置序号
    _imageNum.text = [NSString stringWithFormat:@"%.f/8",sender.value];

    //3.设置描述
    NSBundle *bundle = [NSBundle mainBundle];
    NSString *path = [bundle pathForResource:@"descr" ofType:@"plist"];
//    NSLog(@"%@",path);
    NSArray *allDescs = [NSArray arrayWithContentsOfFile:path];
//    NSLog(@"%@",allDescs);
    int no = (int)sender.value - 1;
    _imageDesc.text = allDescs[no];

}
- (IBAction)setting {

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1.0];
    CGPoint tempCenter = _settingView.center;
    if (_settingView.frame.origin.y == self.view.frame.size.height) {
        tempCenter.y -= _settingView.frame.size.height;
    }else{
        tempCenter.y += _settingView.frame.size.height;
    }

    _settingView.center = tempCenter;
    [UIView commitAnimations];
}
- (IBAction)nightModel:(UISwitch *)sender {

    if (sender.on) {
        self.view.backgroundColor = [UIColor grayColor];
    }else{
        self.view.backgroundColor = [UIColor whiteColor];
    }
}

- (IBAction)imageSizeChange:(UISlider *)sender {
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1.0];
    _imageView.transform = CGAffineTransformMakeScale(sender.value, sender.value);
    [UIView commitAnimations];

}
@end

  

ios学习-制作一个浏览图片的Demo的更多相关文章

  1. iOS学习——制作一个小型加法计算器

    一.项目要求:制作一个加法计算器.在第1个和第2个文本框中输入两个整数,然后点击“计算”按钮,可将计算结果显示在第3个文本框中. 二.开发步骤: 1.搭建UI界面 2.监听按钮的点击事件 3.获取文本 ...

  2. ios学习--结合UIImageView实现图片的移动和缩放

    因为种种原因,需要在iphone应用中实现图片查看功能,由于iphone屏幕支持多点触摸,于是是想到用“手势”来实现图片的实时缩放和移动.借鉴无所不在的internet网络资料之后,终于实现此一功能, ...

  3. 制作一个顶部图片可以拉伸放大缩小效果的tableViewHeader

    最近负责公司项目个人中心的项目模块研发,首页是一个头部图片可以拉伸放大缩小效果的tableViewHeader,今天这个demo和教程我增加了模糊效果和头像缩小效果.具体效果如图: 如果这个效果是想要 ...

  4. iOS学习笔记之异步图片下载

    写在前面 在iOS开发中,无论是在UITableView还是在UICollectionView中,通过网络获取图片设置到cell上是较为常见的需求.尽管有很多现存的第三方库可以将下载和缓存功能都封装好 ...

  5. 一起学HTML基础-利用CSS和JavaScript制作一个切换图片的网页

    由于个人原因,不详细写步骤 思路: 一.布局 二.制作图片区和按钮区的div及颜色.边框.背景属性等 三.用PS将四张图片剪切到同一个尺寸,重叠放置在图片切换区,透明度设置为0 四.点击对应按钮时,将 ...

  6. HTML-利用CSS和JavaScript制作一个切换图片的网页

    由于个人原因,不详细写步骤 思路: 一.布局 二.制作图片区和按钮区的div及颜色.边框.背景属性等 三.用PS将四张图片剪切到同一个尺寸,重叠放置在图片切换区,透明度设置为0 四.点击对应按钮时,将 ...

  7. 为iOS应用制作一个二维码

    第一步:找到你发布的ios应用的下载链接: 第二步:使用二维码转换器,将下载链接转换成 二维码.http://my.qzone.qq.com/app/100699951.html?via=appcen ...

  8. 【原】iOS学习之Socket

    Socket在百度百科的定义 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 相关的描述 Socket的英文原义是“孔”或“插座”.作为BSD UNIX的进 ...

  9. 谈谈我的iOS学习及分享

    iOS可以说是最近几年比较热门和高速发展一个系统,因此iOS开发也变得火热.越来越多的程序员都转向了iOS开发,每个人的学习方法都不同,分享下我的学习经历和见解吧.我之前学习过C++和Qt,Java也 ...

随机推荐

  1. easyloader源码

    /** * easyloader - jQuery EasyUI * * Licensed under the GPL: * http://www.gnu.org/licenses/gpl.txt * ...

  2. HDU5769 Substring(后缀数组)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=5769 #include <iostream> #include <stdio.h> ...

  3. harris角点检测的学习

    Harris通过运用微分运算和自相关矩阵改进了Moravec角点检测算法.用微分算子重新定义灰度强度变化的公式,其灰度强度变化表示为: 式中的wu,v为高斯窗口在(u,v)处的系数.X,Y它们是像素点 ...

  4. 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-2 工程及程序构架介绍

    视频简介: 该视频介绍iCore3应用开发平台出厂源代码中ARM部分程序构架. 源视频包下载地址: http://pan.baidu.com/s/1jHGnc7k   银杏科技优酷视频发布区: htt ...

  5. 张小龙在2017微信公开课PRO版讲了什么(附演讲实录和2016微信数据报告)

    今天2017微信公开课PRO版在广州亚运城综合体育馆举行,这次2017微信公开课大会以“下一站”为主题,而此次的微信公开课的看点大家可能就集中在腾讯公司高级副总裁.微信之父——张小龙的演讲上了!今天中 ...

  6. completionService

    我们现在在Java中使用多线程通常不会直接用Thread对象了,而是会用到java.util.concurrent包下的ExecutorService类来初始化一个线程池供我们使用. 当我们使用Exe ...

  7. 获取EMF文件内全部文字, 并按照左上到右下的顺序排序

    因为工作要求, 需要对EMF文件文字内容做分析.....SO, 如下代码出现了 懒得加注释了, 反正对外接口属性就那么几个, 根据英文猜吧, 很容易的 说明一下: 这个东西结果会对所有文字内容按照左上 ...

  8. Angular工作笔记

    $watch中进行深层次操作时,配合radio或者checkbox的ng-click或ng-change操作,会使checkbox失效,不知原因

  9. 关于SequeezeNet中的Fire Module

    在论文<SQUEEZENET: ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND <0.5MB MODEL SIZE>中,作者 ...

  10. SQL编码乱码解决方法

    摘自 http://www.cnblogs.com/keke/archive/2011/08/05/2128557.html 使用SQL SERVER2005的时候常常遇到中文字符为乱码的情况,经过研 ...