1

我有一个应用程序,我在其中将图像从滚动视图拖放到一个区域,以在将滚动视图中的图像拖放到图像更改的区域时更改该区域的图像。

我的问题是如何将标题中的图像更改为拖到该区域的图像。

目前我在滚动视图中有不同的图像,所有这些图像在拖放到该区域时都会出现我定义的相同图像。

如何为 ScrollView 中的每张图像制作不同的 Drop Touch 事件。

在此处输入图像描述

-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

if ([delegate isInsideRecycleBin:self touching:YES]){

    CGRect myImageRect = CGRectMake(0, 0, 320, 300);
    images = [[UIImageView alloc] initWithFrame:myImageRect];
    [images setImage:[UIImage imageNamed:@"light-cherry.png"]];
    [self.mainView addSubview:images];


    UIImageView * animation = [[UIImageView alloc] init];
    animation.frame = CGRectMake(self.center.x - 32, self.center.y - 32, 40, 40);

    animation.animationImages = [NSArray arrayWithObjects:
                                 [UIImage imageNamed: @"iconEliminateItem1.png"],
                                 [UIImage imageNamed: @"iconEliminateItem2.png"],
                                 [UIImage imageNamed: @"iconEliminateItem3.png"],
                                 [UIImage imageNamed: @"iconEliminateItem4.png"]
                                 ,nil];
    [animation setAnimationRepeatCount:1];
    [animation setAnimationDuration:0.35];
    [animation startAnimating];
    [self.mainView addSubview:animation];
    [animation bringSubviewToFront:self.mainView];
    [animation release];
    ;
    [UIView beginAnimations:@"goback" context:nil];
    [UIView setAnimationDuration:0.4f];
    [UIView setAnimationBeginsFromCurrentState:YES];
    self.center = _originalOutsidePosition;
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector: @selector(animationDidStop:finished:context:)];
    //        loadingView.frame = CGRectMake(rect.origin.x, rect.origin.y - 80, rect.size.width, rect.size.height);
    [UIView commitAnimations];

} else{
    [UIView beginAnimations:@"goback" context:nil];
    [UIView setAnimationDuration:0.4f];
    [UIView setAnimationBeginsFromCurrentState:YES];
    self.center = _originalOutsidePosition;
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector: @selector(animationDidStop:finished:context:)];
    //        loadingView.frame = CGRectMake(rect.origin.x, rect.origin.y - 80, rect.size.width, rect.size.height);
    [UIView commitAnimations];


}

上面是图像被丢弃事件的代码。

以下是我如何在 ScrollView Up 中设置按钮

- (void) addAttachment:(AttachmentItem *)attachment
{
// SAVE ATTACHMENT
[_attachments addObject:attachment];

// RESIZE CONTENT VIEW FOR INSERTINT NEW ATTACHMENT
_scrollView.contentSize = CGSizeMake([_attachments count]*70, 70);

CGFloat startX = (70.0f * ((float)[_attachments count] - 1.0f) + padding);
CGFloat startY = 370;
CGFloat width = 64;
CGFloat height = 64;

GalleryButton *btnAttachment = [[GalleryButton alloc] initWithFrame:CGRectMake(startX, startY, width, height)];
btnAttachment.tag = [_attachments count];
btnAttachment.scrollParent = _scrollView;
btnAttachment.mainView = self.mainView;
btnAttachment.delegate = self;

if (attachment.type == 1){
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 64, 64)];
    imageView.image=[UIImage imageNamed:@"canadian-maple.png"];
    [btnAttachment addSubview:imageView];
    int tag = btnAttachment.tag;
    NSLog(@"%d", tag);
    [imageView release];
}else if (attachment.type == 2){
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 64, 64)];
    imageView.image=[UIImage imageNamed:@"mozambique-wenge.png"];
    [btnAttachment addSubview:imageView];
    int tag = btnAttachment.tag;
     NSLog(@"%d", tag);
    [imageView release];
} else if (attachment.type == 3){
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 64, 64)];
    imageView.image=[UIImage imageNamed:@"canadian-maple.png"];
    [btnAttachment addSubview:imageView];
    int tag = btnAttachment.tag;
    NSLog(@"%d", tag);
    [imageView release];
}
else if (attachment.type == 4){
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 64, 64)];
    imageView.image=[UIImage imageNamed:@"mozambique-wenge.png"];
    [btnAttachment addSubview:imageView];
    int tag = btnAttachment.tag;
    NSLog(@"%d", tag);
    [imageView release];
}
else if (attachment.type == 5){
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 64, 64)];
    imageView.image=[UIImage imageNamed:@"canadian-maple.png"];
    [btnAttachment addSubview:imageView];
    int tag = btnAttachment.tag;
    NSLog(@"%d", tag);
    [imageView release];
}
else if (attachment.type == 6){
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 64, 64)];
    imageView.image=[UIImage imageNamed:@"mozambique-wenge.png"];
    [btnAttachment addSubview:imageView];
    int tag = btnAttachment.tag;
    NSLog(@"%d", tag);
    [imageView release];
}

- (void)viewDidLoad
{
[super viewDidLoad];
self.gallery.mainView = self.view;


AttachmentItem *item = [[AttachmentItem alloc] initWithData:1 data:nil];
[self.gallery addAttachment:item];
[item release];

AttachmentItem *item2 = [[AttachmentItem alloc] initWithData:2 data:nil];
[self.gallery addAttachment:item2];
[item2 release];

AttachmentItem *item3 = [[AttachmentItem alloc] initWithData:3 data:nil];
[self.gallery addAttachment:item3];
[item3 release];

AttachmentItem *item4 = [[AttachmentItem alloc] initWithData:4 data:nil];
[self.gallery addAttachment:item4];
[item4 release];

AttachmentItem *item5 = [[AttachmentItem alloc] initWithData:5 data:nil];
[self.gallery addAttachment:item5];
[item5 release];

AttachmentItem *item6 = [[AttachmentItem alloc] initWithData:6 data:nil];
[self.gallery addAttachment:item6];
[item6 release];
}

所以现在我尝试为我的图像创建一个数组,这些图像被拖到更改 HeaderImage 的区域,但我又被卡住了。我正在使用我的项目所需的最后一个功能,我要做的就是根据拾取并拖放到标题图像区域的图像更改视图顶部的 HeaderImage .

代码编辑

像这样的东西会起作用吗?

// Create the UIImage's from the images folder
UIImage *app = [UIImage imageNamed:@"Appstorm.jpg"];
UIImage *creat = [UIImage imageNamed:@"Creattica.jpg"];
UIImage *free = [UIImage imageNamed:@"Freelance.jpg"];
UIImage *net = [UIImage imageNamed:@"Netsetter.jpg"];
UIImage *rock = [UIImage imageNamed:@"Rockable.jpg"];
UIImage *tuts = [UIImage imageNamed:@"Tutsplus.jpg"];
UIImage *work = [UIImage imageNamed:@"Workawesome.jpg"];

/* Create the dummy array and fill with the UIImages. */
NSArray *banners = [[NSArray alloc] initWithObjects:app, creat, free, net, rock, tuts, work, nil];

// Set the main images array equal to the dummy array
self.bannerImages = banners;

// Release the dummy array
[banners release];

// Release the UIImage objects
[app release];
[creat release];
[free release];
[net release];
[rock release];
[tuts release];
[work release];

detailVC.banner = [bannerImages objectAtIndex:indexPath.row];

imageView.image = banner;

}

我还在我的图像中放置了图像标签。我将如何使用这些来做我想做的事。

4

2 回答 2

0

有很多代码要阅读。我可以建议您对屏幕截图上的小图像使用自定义滚动视图。它会为你节省很多时间

于 2012-11-13T11:33:06.263 回答
0

行。所以我使用 if else 语句来调用我的标签。:)

-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
if ([delegate isInsideRecycleBin:self touching:YES]){

if (self.tag == 1) {

    NSLog(@"View with tag %i was dropped onto trigger area",self.tag);

    CGRect myImageRect = CGRectMake(0, 0, 320, 300);
    headerImage = [[UIImageView alloc] initWithFrame:myImageRect];
    [headerImage setImage:[UIImage imageNamed:@"light-cherry.png"]];
    headerImage.backgroundColor = [UIColor blackColor];
    headerImage.layer.borderWidth = 2;
    headerImage.layer.borderColor = [UIColor blackColor].CGColor;
    headerImage.layer.masksToBounds = YES;
    headerImage.layer.cornerRadius = 5;
    [self.mainView addSubview:headerImage];

}
else if (self.tag == 2)
{

    NSLog(@"View with tag %i was dropped onto trigger area",self.tag);

    CGRect myImageRect = CGRectMake(0, 0, 320, 300);
    headerImage = [[UIImageView alloc] initWithFrame:myImageRect];
    [headerImage setImage:[UIImage imageNamed:@"mozambique-wenge.png"]];
    headerImage.backgroundColor = [UIColor blackColor];
    headerImage.layer.borderWidth = 2;
    headerImage.layer.borderColor = [UIColor blackColor].CGColor;
    headerImage.layer.masksToBounds = YES;
    headerImage.layer.cornerRadius = 5;
    [self.mainView addSubview:headerImage];
}
于 2012-11-15T08:22:58.037 回答