关于软件PicDecor的制作笔记(三)

关于软件PicDecor的制作笔记(三)

之前已经介绍了关于图片获取(通过相机设备)或者从相册中选择已有相片并加载到编辑页面上,那么这一篇就介绍最后需要注意的几点地方。

1.    进行图片的编辑

既然要添加一些小饰品图片到相片上,那么就应该有一个控制器类,用来显示小饰品图片,更重要的是,要能够将用户选择的小饰品图片添加到之前的编辑界面上,一次,就需要通过设置全局变量A来讲图片传递到之前的界面。具体的做法是,可以设置一个全局变量A用来记录当前选择的图片,然后在之前的编辑界面也设置一个变量B用来接受传递过来的变量A,这样的话,当我们在小饰品选择界面选择了某一个小饰品图片时,就将这个图片值赋值给变量A,然后再编辑界面,将传递过来的变量A赋值给本类中的变量B,再将B,也就是选择的那个小饰品图片,加载在我们的相片上即可。在这里,我们通过在appDelegate中设置全局变量进行传递,具体做法是,首先,在AppDelegate函数中编写以下函数:

+(AppDelegate*)shareDelegate{
    return [UIApplication sharedApplication].delegate;
}


并且定义一个用来存放图片的全局变量

@property(nonatomic) UIImage *image;


然后在饰品选择界面,点击完某一个小饰品图片后执行下面的函数:

- (IBAction)doImageBtn:(UIButton*)sender {
 
     selectedImage = [sender backgroundImageForState:UIControlStateNormal];//将点击的这个按钮的背景图片(也就是小饰品图片)传递给这个变量selectedImage
    [AppDelegate shareDelegate].image= selectedImage;//将上面的图片传递给全局变量
     [self dismissViewControllerAnimated:YEScompletion:^{
    }];
}


当然了,首先要在饰品控制器界面的头文件中添加这个变量:

@property(nonatomic,retain) UIImage *selectedImage;

这样,就可以将饰品小图片显示在照片上了。

那么,我们还缺少最后一点小功能的实现,也就是让饰品小图片随手指移动而移动,之前提到,我们需要建立一个专门的UIimageView类(因为涉及到的是图片的位置移动)进行设置,代码如下:

#import "MovableImageView.h"
@implementation MovableImageView
- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        //Initialization code
    }
    return self;
}
//开始点触图片
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event
{
     [super touchesBegan:touches withEvent:event];
}
//结束点触图片
-(void)touchesEnded:(NSSet*)toucheswithEvent:(UIEvent *)event
{
     [super touchesEnded:touches withEvent:event];
}
//点出图片之后进行了移动时,图片位置随手指位置移动
- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent *)event
{
     [super touchesMoved:touches withEvent:event];
    
     float deltaX = [[touches anyObject] locationInView:self].x- [[touches anyObject] previousLocationInView:self].x;
     float deltaY = [[touches anyObject] locationInView:self].y- [[touches anyObject] previousLocationInView:self].y;
     self.transform = CGAffineTransformTranslate(self.transform,deltaX, deltaY);
}
@end

这样就完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值