2015年

6月

12日

Objective-C 矩形 CGRect 矩形(原点座標/サイズ)、 CGPoint 原点座標、CGSize サイズ、中央座標

画像(矩形)のCGRect(原点座標/サイズ)、 CGPoint 原点座標、CGSize サイズ、中央座標を表示します。矩形変更(位置)ボタンを押すと右下に移動、矩形変更(位置、サイズ)ボタンを押すと左上に移動します。

矩形情報取得ボタンを押すと、その位置情報を表示します。

ViewController.m

#import "ViewController.h"


@interface ViewController ()


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


@property (weak, nonatomic) IBOutlet UITextView *teString;


@end


@implementation ViewController


- (void)viewDidLoad

{

    [super viewDidLoad];

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

    

}


- (void)didReceiveMemoryWarning

{

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


// [矩形情報取得]ボタンを押した時

- (IBAction)proc01:(id)sender {

    

    // (1)矩形(原点座標/サイズ)

    CGRect rct = self.ivTarget.frame;

    // マクロ:NSStringFromCGRect

    NSLog(@"(1)%@", NSStringFromCGRect(rct));

    

    //(2)原点座標

    CGPoint pnt = self.ivTarget.frame.origin;

    NSLog(@"(2)%@", NSStringFromCGPoint(pnt));

    NSLog(@"(2)%f, %f", pnt.x, pnt.y);

    

    //(3)サイズ

    CGSize siz01 = self.ivTarget.frame.size;

    NSLog(@"(3)%@", NSStringFromCGSize(siz01));

    NSLog(@"(3)%f", siz01.height);

    

    //(4)中央座標

    CGPoint cpt = self.ivTarget.center;

    NSLog(@"(4)%@", NSStringFromCGPoint(cpt));

    

    self.teString.text = nil;

    

    self.teString.text = [self.teString.text

                                stringByAppendingFormat:@"(1)矩形(原点座標/サイズ)\n"];

    self.teString.text = [self.teString.text stringByAppendingFormat:

                          @"(1)%@\n", NSStringFromCGRect(rct)];

    

    self.teString.text = [self.teString.text stringByAppendingFormat:@"(2)原点座標\n"];

    self.teString.text = [self.teString.text stringByAppendingFormat:

                          @"(2)%@\n", NSStringFromCGPoint(pnt)];

    self.teString.text = [self.teString.text stringByAppendingFormat:

                          @"(2)%f, %f\n", pnt.x, pnt.y];

    

    self.teString.text = [self.teString.text stringByAppendingFormat:@"(3)サイズ\n"];

    self.teString.text = [self.teString.text stringByAppendingFormat:

                          @"(3)%@\n", NSStringFromCGSize(siz01)];

    self.teString.text = [self.teString.text stringByAppendingFormat:

                          @"(3)%f\n", siz01.height];

    

    self.teString.text = [self.teString.text stringByAppendingFormat:@"(4)中央座標\n"];

    self.teString.text = [self.teString.text stringByAppendingFormat:

                          @"(4)%@\n", NSStringFromCGPoint(cpt)];

}


// [矩形変更(位置)]ボタンを押した時

- (IBAction)proc02:(id)sender {

    

    // 中央座標の取得

    CGPoint cnt = self.ivTarget.center;

    

    // 移動

    CGPoint mov = CGPointMake(cnt.x + 10.f,

                              cnt.y + 10.f);

    self.ivTarget .center = mov;

    

    // 移動2(エラー)

//    {

//        CGPoint pnt = self.ivTarget.frame.origin;

//        CGPoint mov = CGPointMake(cnt.x + 10.f,

//                                  cnt.y + 10.f);

//        self.ivTarget.frame.origin = mov;

//        

//    }

    

    

}


// [矩形変更(位置、サイズ)]ボタンを押した時

- (IBAction)proc03:(id)sender {

    

    // 矩形情報の

    CGRect rct = self.ivTarget.frame;

    CGPoint pnt = rct.origin;   // 原点座標

    CGSize siz = rct.size;      // サイズ

    

    // 情報変更

    CGRect newRct = CGRectMake(pnt.x -10.0f,

                               pnt.y -10.0f,

                               siz.width -5.0f,

                               siz.height -5.0);

    

    self.ivTarget.frame =newRct;

}


@end

GitHub Rectangle

  

目 次