我有一個UIView通過接口生成器鏈接到UIViewController。 是否可以複製,複製或複製此視圖,以便我可以多次使用它?重複,克隆或複製UIView
21
A
回答
1
當然。該文檔有一個good example of how to achieve that;它適用於UITableViewCell
,但這也是一個很好的方法。
根據視圖的複雜程度,您可能希望將其設置爲自定義視圖類,併爲其擁有的子視圖提供自己的IBOutlet
屬性;在這種情況下,您應該在Interface Builder中將該視圖的「Class Identity」設置爲該類。然後,您的視圖控制器可以通過例如myLoadedView.someLabel
訪問任何給定的XIB加載的視圖上的視圖,而不必使用上述文檔中建議的[myLoadedView viewWithTag:3]
。
30
以下類別可能不是特別有效,但在一個項目工作對我來說:
@implementation UIView (OPCloning)
- (id) clone {
NSData *archivedViewData = [NSKeyedArchiver archivedDataWithRootObject: self];
id clone = [NSKeyedUnarchiver unarchiveObjectWithData:archivedViewData];
return clone;
}
@end
我沒有實現 - 複製或-copyWithZone:蘋果可能會在將來也會如此。請注意,並非所有視圖都將歸檔實現到相同的程度。您肯定需要爲要克隆的NSView子類的自定義屬性實現NSCoding方法(否則將在克隆視圖中變爲nil)。比編寫自定義克隆代碼更容易。
13
這裏是你可以用一種新的方法:使用的UIView的方法:
- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates
這是畫一個圖的最快方式。可在iOS的7
2
你可以用下面斯威夫特3.0.1嘗試:
extension UIView{
func copyView() -> AnyObject{
return NSKeyedUnarchiver.unarchiveObject(with: NSKeyedArchiver.archivedData(withRootObject: self))! as AnyObject
}
}
相關問題
- 1. 克隆或複製的UIViewController或UIView的
- 2. 克隆/複製SimpleScriptContext
- 3. 克隆或複製現有的Crystal Reports
- 4. 如何複製或克隆模型?
- 5. 克隆或複製蟒蛇進口
- 6. 從SQL Server表複製或克隆行
- 7. 複製/克隆Javascript對象
- 8. 複製和克隆div
- 9. 我如何克隆/複製iOS的某種UIView?
- 10. 克隆對象克隆與實現可複製的接口
- 11. Mongodb備份或複製或克隆與現有的大數據
- 12. jQuery的重複(?克隆)HTML的開發
- 13. jquery重複div點擊不克隆
- 14. JavaFX 2.0中的重複/克隆節點
- 15. 重複移動JS可拖動克隆
- 16. 如何創建克隆重複視圖?
- 17. 克隆/複製不可修改列表
- 18. 在會話中複製/克隆對象
- 19. 複製沒有克隆的跨度?
- 20. 克隆/複製Javascript地圖變量
- 21. 使用EPPlus複製/克隆Excel形狀?
- 22. 複製/克隆實例的屬性?
- 23. 克隆/複製dojo數據存儲
- 24. YUI - 克隆節點複製事件
- 25. 複製/克隆從數據庫
- 26. 複製事件要克隆Contorl
- 27. 用克隆複製表格行
- 28. 複製/克隆動態對象?
- 29. 克隆/複製silverlight中的UIElement
- 30. 複製/克隆流在一個循環...
[斯威夫特答案】(http://stackoverflow.com/a/37050633/3681880) – Suragch 2016-05-05 12:57:47