IOS学习—控件的综合练习

//
//  ViewController.h
//  图片浏览器
//
//  Created by on 15/4/14.
//  Copyright (c) 2015年 apple. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet UILabel *imageValue;
@property (weak, nonatomic) IBOutlet UILabel *imageDesc;
@property (weak, nonatomic) IBOutlet UIView *settingView;

- (IBAction)valueChange:(UISlider *)sender;
- (IBAction)settingButton;
- (IBAction)darkModel:(UISwitch *)sender;
- (IBAction)imageSize:(UISlider *)sender;

@end
//
//  ViewController.m
//  图片浏览器
//
//  Created by on 15/4/14.
//  Copyright (c) 2015年 apple. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

{
    NSArray *_imageMess;
}

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

//    要访问项目中的所有资源用mainBundle
    NSBundle *bundle = [NSBundle mainBundle];
    NSString *filePath = [bundle pathForResource:@"imageMessages" ofType:@"plist"];

//    读取文件要传入绝对路径
    _imageMess = [NSArray arrayWithContentsOfFile:filePath];

    NSDictionary *dic = _imageMess[0];
    NSString *imageName = [dic objectForKey:@"icon"];
    _imageView.image = [UIImage imageNamed:imageName];
    NSString *imageMessage = [dic objectForKey:@"title"];
    _imageDesc.text = imageMessage;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

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

//    这里的%.f即为不保留小数位,四舍五入
//    NSString *imageName = [NSString stringWithFormat:@"%.f", sender.value];
    NSDictionary *dic = _imageMess[(int)sender.value - 1];
    NSString *imageName = [dic objectForKey:@"icon"];
    _imageView.image = [UIImage imageNamed:imageName];

    NSString *imageValue = [NSString stringWithFormat:@"%.f/%.f", sender.value, sender.maximumValue];
    _imageValue.text = imageValue;

    NSString *imageMessage = [dic objectForKey:@"title"];
    _imageDesc.text = imageMessage;
}

#pragma mark 注意这里的写法,如果信息处理不同的话,多用这种方式重构代码
-(void)animationCustom:(void (^)())block {
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.35];
    block();
    [UIView commitAnimations];
}

- (IBAction)settingButton {
    CGFloat viewHeight = _settingView.frame.size.height;

    [self animationCustom:^{
        if (_settingView.frame.origin.y == self.view.frame.size.height) {
            CGRect frame = _settingView.frame;
            frame.origin.y -= viewHeight;
            _settingView.frame = frame;
        } else {
            CGRect frame = _settingView.frame;
            frame.origin.y += viewHeight;
            _settingView.frame = frame;
        }
    }];
}

- (IBAction)darkModel:(UISwitch *)sender {
    if (sender.on) {
        self.view.backgroundColor = [UIColor darkGrayColor];
    } else {
        self.view.backgroundColor = [UIColor whiteColor];
    }
}

- (IBAction)imageSize:(UISlider *)sender {
    _imageView.transform = CGAffineTransformMakeScale(sender.value, sender.value);
}

@end

时间: 2024-10-09 22:30:59

IOS学习—控件的综合练习的相关文章

iOS常用控件尺寸大集合

元素控件 尺寸(pts) Window(含状态栏) 320 x 480 Status Bar的高度 20 Navigation Bar的高度 44 含Prompt的Navigation Bar的高度 74 Navigation Bar的图标 20×20(透明的png) Tool Bar的高度 44 Tool Bar的图标 20×20(透明的png) Tab Bar的高度 49 Tab Bar的图标 30×30(透明的png) 竖直时键盘的高度 216.252(iOS 5+的中文键盘) 水平时键盘

iOS第三方控件

一.SIAlertView https://github.com/Sumi-Interactive/SIAlertView 感言: 扁平化设计的对话框(UIAlertView),对话框的弹出与消失的动画很不错,可以自定义对话框的外观 iOS第三方控件

iOS UITextField控件总结

iOS UITextField控件总结 先声明下面总结不是自己写的. //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UITextBorderStyleNone

iOS基础控件UINavigationController中的传值

iOS基础控件UINavigationController中的传值,代理传值,正向传值,反向传值 #import <UIKit/UIKit.h> //声明一个协议 @protocol SendValue<NSObject> //定义一个方法 - (void)sendBtnTitle:(NSString *)title; @end @interface FirstViewController : UIViewController // 定义代理 @property (nonatomi

IOS Ui控件 修改位置和尺寸,代码添加控件

所有的UI控件最终都继承自UIView,UI控件的公共属性都定义在UIView中, UIView的常见属性 UIView *superview; 获得自己的父控件对象 NSArray *subviews; 获得自己的所有子控件对象 NSInteger tag; 控件的ID(标识),父控件可以通过tag来找到对应的子控件 CGAffineTransform transform; 控件的形变属性(可以设置旋转角度.比例缩放.平移等属性) CGRect frame; 控件所在矩形框在父控件中的位置和尺

IOS—UITextFiled控件详解

IOS—UITextFiled控件详解 //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UITextBorderStyleNone, UITextBorderS

[iOS基础控件 - 5.5] 代理设计模式 (基于”APP列表&quot;练习)

A.概述 在"[iOS基础控件 - 4.4] APP列表 进一步封装,初见MVC模式”上进一步改进,给“下载”按钮加上效果.功能 1.按钮点击后,显示为“已下载”,并且不可以再按 2.在屏幕中间弹出一个消息框,通知消息“xx已经被安装”,慢慢消失 3.消息框样式为圆角半透明 B.不使用代理模式,使用app空间组和主View之间的父子View关系 1.在主View中创建一个消息框 主View控制器:ViewController.m 1 // 创建下载成功消息框 2 CGFloat labelWid

JS调用Android、Ios原生控件

在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时,提高代码质量,实现两者在网页端代码的统一. 首先我们先看一下Ios调用JS的方法实现: //无参调用 function SwiftCallJs1(){} //有参调用 function SwiftCallJs2(name, message){} 紧接着我们看一下Android调用JS的方法实现: /

android 仿ios开关控件

ios一些控件还是挺漂亮的,但是对android程序员来说可能比较苦逼,因为ios一些看起来简单的效果对android来说可能就没那么简单了,但是没办法很多产品都是拿ios的一些控件叫android开发人员来照着做,今天就来做一个设置中常见的开关效果, 思路: 1:准备二张图片 一个是包含开和关二种状态的图片,一个是上面滑动的按钮图片 2:这些图片肯定是不能通过原生态的控件显示上去的,要通过canvas画上去 3:要解决点击和滑动的事件冲突,因为点击包含 按下 离开,而滑动包含按下  移动 离开