转载iOS动画

CGAffineTransform知识

2015-04-22  本文已影响77人  linwkr

UIView有一个transform的property。这个值的默认值为此view的bounds的center,当transform不为default value时,view的frame就为未定义属性,可以被忽略,从而可以任意改变view位置。

以下为测试代码。

#import "ViewController.h"

@interface ViewController ()

@property (nonatomic, strong) UIView *testView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    CGRect rect = self.view.bounds;
    _testView = [[UIView alloc] initWithFrame:
                 CGRectMake(20, 20, rect.size.width / 2.0 - 60, rect.size.height / 2.0 - 60)];
    _testView.backgroundColor = [UIColor blueColor];
    [self.view addSubview:_testView];
}

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

#pragma mark button action
- (IBAction)moveRight:(id)sender
{
    _testView.transform = CGAffineTransformTranslate(_testView.transform, 10.0f, 0.0f);
}
- (IBAction)moveOrigin:(id)sender
{
    _testView.transform = CGAffineTransformIdentity;
}
- (IBAction)scale:(id)sender
{
    _testView.transform = CGAffineTransformMakeScale(0.9, 0.9);
}
@end
测试demo截图
上一篇 下一篇

猜你喜欢

热点阅读