如何使用xcode将快照分成多个部分,以便我可以让用户与每个部分进行交互?

时间:2012-10-09 00:49:17

标签: objective-c ios xcode iphone-sdk-3.0

我的应用程序的要求是它需要拍照然后将其分成几部分。比如说有8行和8列。我可能将行命名为A到H,而我可能将列命名为1到8.假设用户在单击图片后选择A1,代码应该能够缩放A1并为他提供选项来执行一些事情,比如放置一些符号或从可用选项中标出一些东西。我如何实现1)分裂2)缩放3)以小徽标的形式向用户提供各种符号?我对iphone编程很新,发现有一个名为UIImagePickerController的类来帮助你,但我不知道如何实现1,2和3.请帮助我。

1 个答案:

答案 0 :(得分:2)

好吧,要将图片分割成碎片,您应该使用以下代码(将其放在UIImage类别中):

- (UIImage *)imageCroppedWithRect:(CGRect)rect
{
    if (self.scale > 1.0f) {
        rect = CGRectMake(rect.origin.x * self.scale,
                          rect.origin.y * self.scale,
                          rect.size.width * self.scale,
                          rect.size.height * self.scale);
    }

    CGImageRef imageRef = CGImageCreateWithImageInRect(self.CGImage, rect);
    UIImage *result = [UIImage imageWithCGImage:imageRef scale:self.scale orientation:self.imageOrientation];
    CGImageRelease(imageRef);
    return result;
}

现在您将拥有一些图像,并且应该为这些图像创建适当数量的UIImageViews。然后,根据您希望如何让用户缩放它,添加UITapGestureRecognizer,e.q ..对于缩放,您可以添加隐藏的UIImageView,当点击该片段时,请使用以下代码:

- (void)pieceTapped:(UITapGestureRecognizer *)recognizer
{
    UIImageView *piece = recognizer.view;
    self.zoomedImageView.frame = piece.frame;
    self.zoomedImageView.image = piece.image;
    self.zoomedImageView.hidden = NO;
    [UIView animationWithDuration:0.3 animation:^{
        self.zoomedImageView.frame = self.view.frame;
    }];
}

现在你应该只将符号放在那个图像上。但是你想怎么做呢?拖拽从某处或自动丢弃图像?永久地将符号放置在图像上还是只放在图像上?