关闭

纯代码实现图片预览

标签: iosui
159人阅读 评论(0) 收藏 举报

1UI效果图




2.代码实现


//
//  ViewController.m
//  04-图片浏览器
//
//  Created by liuhang on 15/11/20.
//  Copyright © 2015年 liuhang. All rights reserved.
//

#import "ViewController.h"
/*
 1.查看界面元素需要哪些标签
      UIImageView 图片显示
      UIButton 按钮
      UILabel  标签
   @property  生成set和get 并生成员变量 _noLabel
 
 2.代码布局
    注意点 :  UIImage 是图片,不是控件;他的父类为NSObject;
              UIImageView是加载图片的控件,父类为UIView
 3.设置监听,实现功能
 */

@interface ViewController ()
// 定义属性名称
// 1.序号标签
@property (nonatomic ,strong)  UILabel *noLabel;

// 2.图片按钮
@property (nonatomic , strong) UIImageView *iconImage;

// 3.文字描述标签
@property (nonatomic , strong) UILabel *descLabel;

// 4.左按钮
@property (nonatomic , strong) UIButton *leftButton;

// 5.右按钮
@property (nonatomic , strong) UIButton *rightButton;


@end

@implementation ViewController

// 初始化加载 : 在viveDidLoad创建界面
- (void)viewDidLoad {
    
    [super viewDidLoad];
    
    // 1.添加序号标签  slef.noLabel
    _noLabel =  [[UILabel alloc] initWithFrame:CGRectMake(0, 20, self.view.bounds.size.width, 40)];
    _noLabel.text = @"1/5";  // 设置文本内容
    _noLabel.textAlignment = NSTextAlignmentCenter;
    NSLog(@"屏幕的宽度 = %f",self.view.bounds.size.width);  // 414(6s)
    [self.view addSubview:_noLabel];  // 将视图添加到父视图
    
    // 2.添加图片
    CGFloat imageW = 200;
    CGFloat imageH = 200;
    // 图片居中,(获取屏幕长度 - 图片宽度) * 0.5   乘法的效率要不除法的效率高一点
    CGFloat imageX = (self.view.bounds.size.width - imageW) * 0.5;
    // 高度比序号标签高30
    CGFloat imageY = _noLabel.bounds.size.height + 30;
    _iconImage = [[UIImageView alloc] initWithFrame:CGRectMake(imageX, imageY, imageW, imageH)];
    // _iconButton.backgroundColor  = [UIColor redColor];  设置背景颜色检测正确性
    _iconImage.image = [UIImage imageNamed:@"biaoqingdi"];  // 设置背景图片
    [self.view addSubview:_iconImage];
    
    // 3.描述文字
    // CGRectGetMaxY是获取当前控件y坐标值 + 控件高度的值
    CGFloat descY = CGRectGetMaxY(self.iconImage.frame);
    _descLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, descY , self.view.bounds.size.width, 100)];
    _descLabel.text = @"表情帝";
    _descLabel.textColor = [UIColor redColor];  // 设置文本颜色
    _descLabel.textAlignment = NSTextAlignmentCenter;
    [self.view addSubview:_descLabel];
    
    // 4.添加左按钮
    _leftButton = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 40, 40)];  // 初始化按钮位置
    // 动态设置按钮位置
    CGFloat centerY = self.iconImage.center.y;
    CGFloat centerX = self.iconImage.center.x * 0.3;
    _leftButton.center = CGPointMake(centerX, centerY);
    // 按钮设置背景图片只能通过set方法
    [_leftButton setBackgroundImage:[UIImage imageNamed:@"left_normal"] forState:UIControlStateNormal];
    [_leftButton setBackgroundImage:[UIImage imageNamed:@"left_highlighted"] forState:UIControlStateHighlighted];
    [self.view addSubview:_leftButton];
    
    // 5.设置右按钮
    _rightButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
    _rightButton.center = CGPointMake(self.view.bounds.size.width - centerX, centerY);
    // 按钮设置背景图片只能通过set方法
    [_rightButton setBackgroundImage:[UIImage imageNamed:@"right_normal"] forState:UIControlStateNormal];
    [_rightButton setBackgroundImage:[UIImage imageNamed:@"right_highlighted"] forState:UIControlStateHighlighted];
    [self.view addSubview:_rightButton];
}

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

@end



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:37280次
    • 积分:1533
    • 等级:
    • 排名:千里之外
    • 原创:119篇
    • 转载:15篇
    • 译文:0篇
    • 评论:6条
    最新评论