有時候一張影像,我們想要複製來使用,那麼可以如何做?
![[iOS] 拷貝影像 (Copy Image)3](https://cg2010studio.com/wp-content/uploads/2018/07/ios-e68bb7e8b29de5bdb1e5838f-copy-image3.png?w=540)
我想拷貝上圖下方的黑色漸層影像。
有人如我直覺使用Copy功能,可是會crash,因為:
UIImageView doesn’t conform to NSCopying, but it does conform to NSCoding. Archive your view, and then de-archive it to get a brand new copy.
/**
Theme: Copy ImageView
IDE: Xcode 9
Language: Objective C
Date: 107/07/12
Author: HappyMan
Blog: https://cg2010studio.com/
*/
UIImageView *imageView = [[UIImageView alloc] initWithImage:darkImage];
imageView.frame = CGRectMake(0, 0, sleepStateInfoView.frame.size.width, sleepStateInfoView.frame.size.height);
[sleepStateInfoView addSubview:imageView];
[sleepStateInfoView sendSubviewToBack:imageView];
NSData *imageViewData = [NSKeyedArchiver archivedDataWithRootObject:imageView];
UIImageView *copyImageView = [NSKeyedUnarchiver unarchiveObjectWithData:imageViewData];
[lifeStyleInfoView addSubview:copyImageView];
[lifeStyleInfoView sendSubviewToBack:copyImageView];
imageViewData = [NSKeyedArchiver archivedDataWithRootObject:imageView];
copyImageView = [NSKeyedUnarchiver unarchiveObjectWithData:imageViewData];
[respirationRateInfoView addSubview:copyImageView];
[respirationRateInfoView sendSubviewToBack:copyImageView];
imageViewData = [NSKeyedArchiver archivedDataWithRootObject:imageView];
copyImageView = [NSKeyedUnarchiver unarchiveObjectWithData:imageViewData];
[sdnnInfoView addSubview:copyImageView];
[sdnnInfoView sendSubviewToBack:copyImageView];
於是乎,我們輕鬆愉快複製和貼上:)
隨意留個言吧:)~