图片浏览器--UI编程

//  QYViewController.h

// 
图片浏览器

#import <UIKit/UIKit.h>

@interface QYViewController : UIViewController

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

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

- (IBAction)setting;

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

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

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

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

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

@end

//  QYViewController.m

// 
图片浏览器

#import "QYViewController.h"

@interface QYViewController ()

{

NSArray *_allDescs;//成员变量

}

@end

@implementation QYViewController

#pragma mark  控制器的view加载完毕后会调用一次

- (void)viewDidLoad

{

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

//获得所有描述(通过解析plist文件来创建数组对象  必如传入文件的全路径

//如果要访问项目中资源里面的所有资源,应该用mainBundle

NSBundle *bundle = [NSBundle mainBundle];

NSString *path = [bundle pathForResource:@"descs" ofType:@"plist"];

//加载path对应的文件来创建数组

_allDescs = [NSArray arrayWithContentsOfFile:path];

//设置默认的描述

_imageDesc.text = _allDescs[0];

}

#pragma mark夜间模式

- (IBAction)nightMode:(UISwitch *)sender
{

if(sender.on){//开

self.view.backgroundColor =
[UIColor darkGrayColor];

}else{//关

self.view.backgroundColor =
[UIColor whiteColor];

}

}

#pragma mark 改变图片尺寸

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

//1.取出frame

CGRect tempFrame = _imageView.bounds;

//2.修改frame

tempFrame.size.width =
sender.value * 320;

tempFrame.size.height =
sender.value * 100;

//3.重新赋值frame

_imageView.bounds =
tempFrame;

//_imageView.transform = CGAffineTransformMakeScale(sender.value, sender.value);

}

#pragma mark 点击设置

- (IBAction)setting

{

[UIView beginAnimations:nil context:nil];

[UIView setAnimationDuration:1.0];

//取出中点

CGPoint tempCenter = _settingView.center;

//修改y值

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)sliderValueChange:(UISlider *)sender
{

// NSLog(@"change---:%.f",sender.value);

//获得图片名称 %.f 不保留任何小数

NSString *imageName = [NSString stringWithFormat:@"%.0f.png",sender.value];

_imageView.image =
[UIImage imageNamed:imageName];

//设置序号(第几张)

_imageNo.text =
[NSString stringWithFormat:@"%.0f/9",sender.value + 1];

//设置描述

int no = (int)sender.value;

_imageDesc.text = _allDescs[no];

NSLog(@"序号--%@
no--%d",_imageNo.text,no);

// NSLog(@"%@",_allDescs[(int)sender.value]);

}

@end

时间: 2024-11-06 12:38:48

图片浏览器--UI编程的相关文章

UI基础-图片浏览器-改进5

上篇文章,我们介绍了使用plist文件加载字典数据,用字典来存储数据,用键值对来存储数据,是NSDictionary类型(坏处:容易写错,不容易调试) 我们可以使用模型来存储数据,也就是将要说的字典转模型. 字典转模型: 字典:用来存储数据,用键值对来存储数据,是NSDictionary类型(坏处:容易写错,不容易调试) 模型:用来存储数据,用属性来存储数据,好处:(有提示,不容易写错) 字典转化成模型:一个字典转换成一个模型,把字典的键值对转换的模型的属性 模型的建立:模型是一个纯洁的obje

UI基础-图片浏览器-改进2

继续改进上面文章中的图片浏览器小案例,将数据放到字典中. 首先了解一下,viewDidLoad方法的作用: @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } @end    在视图加载后被调用: 如果是在代码中创建的视图加载器,他将会在loadView

UI基础-图片浏览器-改进3

本篇文章再次改进图片浏览器小实例. 本篇引入"懒加载"的概念.懒加载(延迟加载),也就是在需要的时候才加载(效率高,占用内存小).所谓懒加载,也就是重写其get方法. 直接附上源码: ViewController.m 1 // 2 // ViewController.m 3 // 01-图片浏览器1 4 // 5 // Created by hukezhu on 15/5/12. 6 // 7 // 8 9 #import "ViewController.h" 10

UI基础-图片浏览器-改进4

上面文章最后引出了plist文件.下面首先介绍一下plist文件. plist全名:Property List,属性列表文件,用来存储串行化后的对象的文件.属性列表文件的扩展名为.plist ,因此通常被称为 plist文件.文件是xml格式的. Plist文件通常用于储存用户设置,也可以用于存储捆绑的信息. 下图为图片浏览器实例使用到的plist文件的截图: 我下面介绍一下plist文件的创建过程,首先在Xcode中,点击"Flie"中的New file 或者直接使用快捷键 comm

UI基础-图片浏览器-改进1

上篇文章实现了一个使用UIImageView\UILabel\UIButton实现一个综合的小的图片浏览器,虽然能实现功能,但是代码有很大的问题,这里进行第一次改进:将代码中重复性的代码进行封装,封装成一个方法,用用户点击按钮时,调用点击按钮的响应方法,这个方法中直接调用封装的这个方法. 下面直接上代码,storyboard拖线跟上篇一样,这里不再重复 ViewController.m 1 // 2 // ViewController.m 3 // 01-图片浏览器1 4 // 5 // Cre

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

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

0821基本控件实例1 ——图片浏览器

一.项目需求--照片浏览器 二.开发步骤 1. 新建项目 2. 搭建UI界面 3. 建立IBOutlet,以便代码能够处理界面元素 4. 建立IBAction,以便界面上某些事件发生时执行方法 5. 代码实现 提示:为了便于理解,开发过程分两个步骤完成 三.演练说明 1.本节使用到的控件包括:UILabel,UIImageView,UISwitch,UIStepper和UISlider五个基本控件,除了第一个UILabel大家已经接触过之外,其他的四个控件都是第一次接触 2.开发过程中首先通过两

第二章 吸引你的眼球—UI编程(1)

第二章 吸引你的眼球-UI编程 学习Android应用程序的开发技术,除了先要熟悉相关工具以外,最直接的,就是学习如何使用各种UI组件.我们开发的应用程序,一般都会包含一组用户可见的界面,而这些界面就是由一个个的AndroidUI组件组成的.我们在学习界面开发技术的过程中,首先就要熟悉这些组件,然后才能将它们有效的组织起来,构成一个美观.合理的界面. 本章会先详细讲解一些常用的UI组件,及如何自定义组件,然后会说明一些其它常用的UI编程技术. 2.1 UI基础-常用UI组件 Android的组件

Android UI编程之自定义控件初步(下)——CustomEditText

概述: 基于对上一篇博客<Android UI编程之自定义控件初步(上)--ImageButton>的学习,我们对自定义控件也有了一个初步的认识.那现在我们可以再试着对EditText进行一些自定义的学习.以下有两种方式的自定义UI编程分享给大家. 示例:带删除按钮的输入框 效果图展示:   基本雏形搭建: 大家可以从上面的效果图上看到两个东西:左侧的EditText和右侧的图片(这里是一个Button).我们在EditText中的输入为空的时候,不显示右侧的清除按钮.一旦EditText中输