您的位置:首页 > 产品设计 > UI/UE

UI14_图片相关

2015-10-06 19:45 393 查看
工程建立~: single View Application

AppDelegate.h

AppDelegate.m 二者中都不用写啥玩意儿

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@end


ViewController.m

#import "ViewController.h"

@interface ViewController ()<UIActionSheetDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate>
@property(nonatomic, retain)UIImageView *imageView;

@end

@implementation ViewController
- (void)dealloc
{
[_imageView release];
[super dealloc];
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 150, 150)];
[self.view addSubview:self.imageView];
[self.imageView release];
self.imageView.backgroundColor = [UIColor cyanColor];

UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"选择图片" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"从相册里选择", nil];
[sheet showInView:self.view];
[sheet release];

self.imageView.userInteractionEnabled = YES;
//  长按手势
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressAction:)];
[self.imageView addGestureRecognizer:longPress];
[longPress release];

}

- (void)longPressAction:(UILongPressGestureRecognizer *)longPress {
//  根据手势状态进行判断, 只有手势开始的状态可以进行图片的保存
if (longPress.state == UIGestureRecognizerStateBegan) {
UIImageWriteToSavedPhotosAlbum(self.imageView.image, self, @selector(imageToPhonoAlbum:error:contextinfo:), nil);
}
}
- (void)imageToPhonoAlbum:(UIImage *)image error:(NSError *)error contextinfo:(NSString *)info {
if (!error) {
NSLog(@"保存成功");
}
}

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
NSLog(@"%ld", buttonIndex);

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
//  可编辑
picker.allowsEditing = YES;
//  模态显示出来
[self presentViewController:picker animated:YES completion:^{

}];
//  要通过choose获取本地的图片就必须签订协议
picker.delegate = self;

}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
//  先让相册消失
[picker dismissViewControllerAnimated:YES completion:nil];
//
UIImage *image = info[UIImagePickerControllerEditedImage];
self.imageView.image = image;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: