终于效果图:

BeyondViewController.h

  1. //
  2. // BeyondViewController.h
  3. // 03_图片浏览
  4. //
  5. // Created by beyond on 14-7-22.
  6. // Copyright (c) 2014年 com.beyond. All rights reserved.
  7. //
  8.  
  9. #import <UIKit/UIKit.h>
  10.  
  11. @interface BeyondViewController : UIViewController
  12. @property (weak, nonatomic) IBOutlet UILabel *pageNoLabel;
  13. @property (weak, nonatomic) IBOutlet UIImageView *pictureView;
  14. @property (weak, nonatomic) IBOutlet UILabel *descriptionLabel;
  15. @property (weak, nonatomic) IBOutlet UIView *viewSetting;
  16. - (IBAction)slideValueChanged:(UISlider *)sender;
  17. - (IBAction)setting:(UIButton *)sender;
  18. // switch 开关
  19. - (IBAction)switchClick:(UISwitch *)sender;
  20. // 图片大小 缩放
  21. - (IBAction)sliderScaleValueChanged:(UISlider *)sender;
  22.  
  23. @end

BeyondViewController.m

  1. //
  2. // BeyondViewController.m
  3. // 03_图片浏览
  4. //
  5. // Created by beyond on 14-7-22.
  6. // Copyright (c) 2014年 com.beyond. All rights reserved.
  7. //
  8.  
  9. #import "BeyondViewController.h"
  10.  
  11. @interface BeyondViewController ()
  12. {
  13. // 从mainBundle中载入plist,返回数组
  14. NSArray *_descArray;
  15. }
  16.  
  17. @end
  18.  
  19. @implementation BeyondViewController
  20.  
  21. - (void)viewDidLoad
  22. {
  23. [super viewDidLoad];
  24. // 从mainBundle中载入plist,返回数组,仅载入一次就可以
  25. // sg_bundle模板代码,1,获得.app基本的包;2,返回基本的包中某个文件的fullPath全路径
  26. NSBundle *mainBundle = [NSBundle mainBundle];
  27. NSString *fullPath = [mainBundle pathForResource:@"descs.plist" ofType:nil];
  28. // 成员变量记住,由于其它方法slideValueChanged中要用到
  29. _descArray = [NSArray arrayWithContentsOfFile:fullPath];
  30. // _descriptionLabel.text = _descArray[0];
  31.  
  32. }
  33.  
  34. - (IBAction)slideValueChanged:(UISlider *)sender {
  35. NSLog(@"%d",(int)sender.value);
  36. // 图片名 从0 ~ 15,相应的slide最小值0 最大值15
  37. int pageNo = (int)sender.value;
  38. // 1,控制图片显示
  39. NSString *imageName = [NSString stringWithFormat:@"%d.png",pageNo];
  40. _pictureView.image = [UIImage imageNamed:imageName];
  41. // 2,控制标题显示
  42. _pageNoLabel.text = [NSString stringWithFormat:@"%d/16",(pageNo+1)];
  43. // 3,控制描写叙述显示 plist在模拟器中的全path
  44. // /Users/beyond/Library/Developer/Xcode/DerivedData/03_图片浏览-cwowmkgqqqqmfcfxckpaqtzykyus/Build/Products/Debug-iphonesimulator/03_图片浏览.app/descs.plist
  45. // /Users/beyond/Library/Application Support/iPhone Simulator/7.1/Applications/02291F09-5446-40E2-82AE-18B6D039D88A/03_图片浏览.app/descs.plist
  46. // NSString *descPlistFullPath = [[NSBundle mainBundle] pathForResource:@"descs.plist" ofType:nil];
  47.  
  48. // _descriptionLabel.text = [_descArray objectAtIndex:pageNo];
  49. _descriptionLabel.text = _descArray[pageNo];
  50. }
  51. #pragma mark - 设置:1,夜间模式; 2,图片缩放
  52. - (IBAction)setting:(UIButton *)sender {
  53. // UIView的类方法 实现动画效果(開始动画)
  54. [UIView beginAnimations:nil context:nil];
  55. // 默认动画持续时间是 0.2
  56. [UIView setAnimationDuration:1];
  57.  
  58. int winHeight = self.view.bounds.size.height;
  59. CGFloat targetY = _viewSetting.frame.origin.y==winHeight?(winHeight-self.viewSetting.frame.size.height):winHeight;
  60. // 下面三步为OC标准代码,由于OC中不同意直接修该对象中结构体属性的成员的值,要通过中间的暂时结构体变量
  61. CGRect frame = self.viewSetting.frame;
  62. frame.origin.y = targetY;
  63. self.viewSetting.frame=frame;
  64. // UIView的类方法 实现动画效果(结束动画)
  65. [UIView commitAnimations];
  66. }
  67.  
  68. - (IBAction)switchClick:(UISwitch *)sender {
  69. if (sender.isOn) {
  70. self.view.backgroundColor = [UIColor darkGrayColor];
  71. } else {
  72. self.view.backgroundColor = [UIColor whiteColor];
  73. }
  74. }
  75.  
  76. - (IBAction)sliderScaleValueChanged:(UISlider *)sender {
  77. // UIView的类方法 实现动画效果(開始动画)
  78. [UIView beginAnimations:nil context:nil];
  79. // 默认动画持续时间是 0.2
  80. [UIView setAnimationDuration:1];
  81.  
  82. self.pictureView.transform = CGAffineTransformMakeScale(sender.value, sender.value);
  83.  
  84. // UIView的类方法 实现动画效果(结束动画)
  85. [UIView commitAnimations];
  86. }
  87. @end

效果图

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

iOS_3_图片浏览的更多相关文章

  1. 图片浏览(CATransition)转场动画

    Main.storyboard ViewController.m // //  ViewController.m //  8A04.图片浏览(转场动画) // //  Created by huan ...

  2. Android 高级UI设计笔记14:Gallery(画廊控件)之 3D图片浏览

    1. 利用Gallery组件实现 3D图片浏览器的功能,如下: 2. 下面是详细的实现过程如下: (1)这里我是测试性代码,我的图片是自己添加到res/drawable/目录下的,如下: 但是开发中不 ...

  3. 用CSS和第三方库来提升图片浏览体验

    你是否关注过浏览.点击图片这个微妙的过程,不同的图片展现.交互方式各带来什么样的观感?本文聚焦于图片浏览这个过程以及如何使用CSS3和第三方库来提升体验. 先看下Pinterest.Flickr等时下 ...

  4. 第17讲- UI常用组件之ImageView图片浏览

    第17讲 UI常用组件之ImageView图片浏览 二.图片浏览ImageView ImageView就是一个用来显示图片的视图: ImageView常见属性 常见属性 对应方法 说明 android ...

  5. [置顶] ios 一个不错的图片浏览分享框架demo

    demo功能:一个不错的图片浏览分享框架demo.iphone6.1 测试通过.可以浏览图片,保存,微博分享到新浪,腾讯,网易,人人等. 注:(由于各个微博的接口有时候会有调整,不一定能分享成功.只看 ...

  6. WPF 图片浏览 伪3D效果

    原文:WPF 图片浏览 伪3D效果 首先上效果图: 因项目要求,需要把图片以"好看"."炫"的效果展示出来,特地研究了一下WPF关于3D方面的制作,奈何最终成果 ...

  7. Ubuntu下几个命令行方式使用的图片浏览工具

    想找几个Ubuntu下可以以命令行方式使用的图片浏览工具. Google了一些资料,找到下面几个web: 1.pho:轻巧的命令行图片查看器 其中介绍了工具pho,其功能特点,见下面的转帖内容: ph ...

  8. 【MVC】快速构建一个图片浏览网站

    当抄完MusicStore时,你应该对MVC有一个比较清晰的认识了.接下来就需要做个网站来继续增加自己的知识了.那么,该做个什么网站呢.做个图片浏览网站吧,简单而实用. 简单设计 1.首先,页面中间是 ...

  9. iOS Swift WisdomScanKit二维码扫码SDK,自定义全屏拍照SDK,系统相册图片浏览,编辑SDK

    iOS Swift WisdomScanKit 是一款强大的集二维码扫码,自定义全屏拍照,系统相册图片编辑多选和系统相册图片浏览功能于一身的 Framework SDK [1]前言:    今天给大家 ...

随机推荐

  1. MyBatis参数为Integer型并赋值为0时判断失误的问题解决

    mybatis.xml中有if判断条件判断参数不为空时,赋值为0的Integer参数被MyBatis判断为空,因此不执行<if test="param != null and para ...

  2. jtds链接SqlServer数据库(整合)

    先前使用的时候没做汇总,现在结合遇到的问题总结下. 开始使用jdbc驱动配置调用SqlServer不合适,根据网上的资料修改成了jtds配置方式. 当时使用的maven配置,配置如下: <spa ...

  3. SQL Server 2017 EXPRESS 安装 SQLCMD 设置远程连接

    1.配置管理器内启动TCP/IP协议(端口改为1433)以及加入防火墙允许 2.进入本地实例: cmd Microsoft Windows [版本 ] (c) Microsoft Corporatio ...

  4. Word中设置所有西文字体为新罗马

    如图所示,不用一个一个设置,在字体里直接设置细纹字体:Times New Roman ,中文字体不用管.

  5. 彻底理解Javascript 中的 Promise(-------------------------------***---------------------------------)

    ES6原生提供了 Promise 对象. 到底是何方妖怪呢?打出来看看: 所谓 Promise,就是一个对象,用来传递异步操作的消息.它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个 ...

  6. UIWebView to view self signed websites (No private api, not NSURLConnection) - is it possible?

    What it actually does is to intercept the UIWebView to launch a NSURLConnection to allow the server ...

  7. The beta-reports-active Entitlement

    Q:  How do I resolve the "beta-reports-active" code signing error? A: There are a number o ...

  8. andriod读写XML

    AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xm ...

  9. [转]WCF RESTful service and WebGrid in ASP.NET MVC 5

    使用WebClient调用WCF服务 流程:从View获取实体类-->序列化-->写入内存流中-->传给远端的WCF服务 Get.POST.PUT.DELETE,客户端以流的方式调用 ...

  10. Android ToolBar 使用完全解析

    ToolBar简介 ToolBar是Android 5.0推出的一个新的导航控件用于取代之前的ActionBar,由于其高度的可定制性.灵活性.具有Material Design风格等优点,越来越多的 ...