我有一个应用程序,当我将滚动视图中的图像拖放到图像更改的区域时,我将图像从滚动视图拖放到某个区域以更改该区域的图像。
我的问题是如何将标题中的图像更改为拖动到该区域的图像。
目前我在滚动视图中有不同的图像,当拖放到我定义的相同图像的区域时,所有这些图像都会出现。
如何在ScrolView中为每个图像制作不同的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];
}
以上是Dropped Event图像的代码。
以下是我在ScrolView 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;
}
我也在我的图片中添加了图片标签。我如何使用这些来做我想做的事。
答案 0 :(得分:0)
要阅读的代码很多。 我可以建议您在屏幕截图上使用自定义滚动视图来显示小图像。它会为你节省很多时间
答案 1 :(得分: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];
}