2012年9月27日 星期四

UIScrollView基本使用(五)

實作一個ScrollView的砍圖機制,此機制是使用tag來完成的。
本例的測試在於所增加的小圖,可以隨時移除所需的部分。

Xcode版本4.5 & IOS6

1. 開啓一個iPad的專案


2. 加入兩個Button

3. 加入所需的圖檔

4. 在objectTagViewController.m加入控制碼
#import "objectTagViewController.h"

@interface objectTagViewController ()

@end

@implementation objectTagViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    NSString *imageName = [NSString stringWithFormat:@"TaiwanMap.jpg"];
    UIImage *image1 = [UIImage imageNamed:imageName];
    UIImageView *imageView1 = [[UIImageView alloc] initWithImage:image1];
   
    UIImage *image2 = [UIImage imageNamed:imageName];
    UIImageView *imageView2 = [[UIImageView alloc] initWithImage:image2];
   
    [imageView1 setFrame:CGRectMake(0, 0, 512, 600)];// x, y, w, h
   
    [imageView2 setFrame:CGRectMake(512, 0, 512, 600)];// x, y, w, h
   
    [self.view  addSubview:imageView1];
    [self.view  addSubview:imageView2];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
- (IBAction)deleteImage:(id)sender {
   
    [self removeSubViewByTag:12];
   
    [self removeSubViewByTag:15];
   
}
- (IBAction)addImage:(id)sender {

    NSString *imageName1 = [NSString stringWithFormat:@"Green Apple.gif"];
    NSString *imageName2 = [NSString stringWithFormat:@"Orange.gif"];
    NSString *imageName3 = [NSString stringWithFormat:@"Pear.gif"];
    NSString *imageName4 = [NSString stringWithFormat:@"Red Apple.gif"];
    NSString *imageName5 = [NSString stringWithFormat:@"Strawberry.gif"];
   
    UIImage *image1 = [UIImage imageNamed:imageName1];
    UIImage *image2 = [UIImage imageNamed:imageName2];
    UIImage *image3 = [UIImage imageNamed:imageName3];
    UIImage *image4 = [UIImage imageNamed:imageName4];
    UIImage *image5 = [UIImage imageNamed:imageName5];
   
    UIImageView *imageView1 = [[UIImageView alloc] initWithImage:image1];
    UIImageView *imageView2 = [[UIImageView alloc] initWithImage:image2];
    UIImageView *imageView3 = [[UIImageView alloc] initWithImage:image3];
    UIImageView *imageView4 = [[UIImageView alloc] initWithImage:image4];
    UIImageView *imageView5 = [[UIImageView alloc] initWithImage:image5];
   
    [imageView1 setFrame:CGRectMake(50, 50, 72, 72)];// x, y, w, h
    [imageView2 setFrame:CGRectMake(100, 100, 72, 72)];// x, y, w, h
    [imageView3 setFrame:CGRectMake(150, 150, 72, 72)];// x, y, w, h
    [imageView4 setFrame:CGRectMake(250, 250, 72, 72)];// x, y, w, h
    [imageView5 setFrame:CGRectMake(300, 300, 72, 72)];// x, y, w, h
   
    imageView1.tag = 11;
    imageView2.tag = 12;
    imageView3.tag = 13;
    imageView4.tag = 14;
    imageView5.tag = 15;
   
    [self.view  addSubview:imageView1];
    [self.view  addSubview:imageView2];
    [self.view  addSubview:imageView3];
    [self.view  addSubview:imageView4];
    [self.view  addSubview:imageView5];
   
}


- (void) removeSubViewByTag:(NSInteger *)tagNum
{
    for(UIView *subview in [self.view subviews]) {
        //if([subview isKindOfClass:[UILabel class]]) {
        if (tagNum == subview.tag) {
            [subview removeFromSuperview];
        } else {
            // Do nothing - not a UIButton or subclass instance
        }
    }
}


@end



5. 執行結果 ,原始背景圖,後來加入五個水果,然後再移除中間的兩個。