我的应用程序的要求是它需要拍照然后将其分成几部分。比如说有8行和8列。我可能将行命名为A到H,而我可能将列命名为1到8.假设用户在单击图片后选择A1,代码应该能够缩放A1并为他提供选项来执行一些事情,比如放置一些符号或从可用选项中标出一些东西。我如何实现1)分裂2)缩放3)以小徽标的形式向用户提供各种符号?我对iphone编程很新,发现有一个名为UIImagePickerController的类来帮助你,但我不知道如何实现1,2和3.请帮助我。
答案 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;
}];
}
现在你应该只将符号放在那个图像上。但是你想怎么做呢?拖拽从某处或自动丢弃图像?永久地将符号放置在图像上还是只放在图像上?