IOS开发之——图片的放大与缩小

一 概述

本文介绍通过frame和bounds属性来实现图片的放大与缩小:

  • frame:以图片原点为起点,进行放大与缩小
  • bounds:以图片中心为起点,进行放大与缩小

二 代码示例

2.1 OC模式下(ViewController.m)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIButton *iconButton;
@end
@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
/** frame模式进行放大与缩小*/
- (IBAction)zoomWithFrame:(UIButton *)button
{
CGRect frame=self.iconButton.frame;
if(button.tag)
{
frame.size.width+=20;
frame.size.height+=20;
NSLog(@"放大");
}else{
frame.size.width-=20;
frame.size.height-=20;
NSLog(@"缩小");
}
self.iconButton.frame=frame;
}
/** bounds模式进行放大与缩小*/
- (IBAction)zoom:(UIButton *)button
{
CGRect frame=self.iconButton.bounds;
if(button.tag)
{
frame.size.width+=20;
frame.size.height+=20;
NSLog(@"放大");
}else{
frame.size.width-=20;
frame.size.height-=20;
NSLog(@"缩小");
}
self.iconButton.bounds=frame;
}
@end

2.2 Swift模式下(ViewController.swift)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import UIKit

class ViewController: UIViewController {

@IBOutlet weak var iconBUtton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
/** frame模式进行放大与缩小*/
@IBAction func zoomWithFrame(_ button: UIButton)
{
var frame=self.iconBUtton.frame;
if(button.tag>0)
{
frame.size.width+=20;
frame.size.height+=20;
NSLog("放大");
}else
{
frame.size.width-=20;
frame.size.height-=20;
NSLog("缩小");
}
self.iconBUtton.frame=frame;
}
/** bounds模式进行放大与缩小*/
@IBAction func zoom(_ button: UIButton)
{
var frame=self.iconBUtton.bounds;
if(button.tag>0)
{
frame.size.width+=20;
frame.size.height+=20;
NSLog("放大");
}else
{
frame.size.width-=20;
frame.size.height-=20;
NSLog("缩小");
}
self.iconBUtton.bounds=frame;
}
}