关于软件PicDecor的制作笔记(三)
来源:互联网 发布:质量数据分析管理办法 编辑:程序博客网 时间:2024/06/01 18:52
关于软件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
这样就完成了。
0 0
- 关于软件PicDecor的制作笔记(三)
- 关于软件PicDecor的制作笔记(一)
- 关于软件PicDecor的制作笔记(二)
- 关于网页制作的软件
- 关于刷标辅助软件的制作
- 一个软件开发工程师的零散笔记总汇(三)
- 老农的计算机笔记(三)软件篇
- MetaTrader软件的功能扩展(关于程序补丁制作的一个例子)
- 关于天天动听的高仿软件的制作
- Yum离线安装(三) --- 制作 CentOS 本地软件源
- 软件安装包制作笔记
- Linux学习笔记4-三种不同类型的软件的安装(绿色软件、rpm软件、源代码软件)
- 《敏捷软件开发》学习笔记(三)
- 笔记软件三强
- 关于软件版本管理的笔记
- 关于优化软件 LINGO 的学习笔记
- 关于软件测试的几点笔记
- Android学习笔记(三):关于像素的一些知识
- Java中只有按值传递,没有按引用传递!
- Eclipse中安装Spring插件
- POJ2411(状态压缩DP)
- 触摸控制移动与缩放算法 - Cocos2d-JS + CocosBuilder
- CocoaLumberjack使用案例
- 关于软件PicDecor的制作笔记(三)
- C++ template--类模版Stack的实现
- URAL 1204. Idempotents 扩展欧几里德
- Add Two Numbers 看着简单,其实各种奇葩情况需要考虑。。。
- 《红孩儿引擎内功心法修练与Cocos2d-x》之结点系统(场景,层,精灵)(精)
- vim显示行号、语法高亮、自动缩进的设置
- PROC系列之---/proc/pid/stat
- 访问者模式之C++实现
- Next Permutation