【问题标题】:UIView copy issue in iOS 9iOS 9 中的 UIView 复制问题
【发布时间】:2015-10-06 12:25:15
【问题描述】:

使用下面的技术我正在复制一个视图,一切都很好,但在 iOS 9 中它无法在 cloneView 中复制使用过的图像。

let cloneView =  NSKeyedUnarchiver.unarchiveObjectWithData(
    NSKeyedArchiver.archivedDataWithRootObject(view1))

谁能帮我解决这个问题。任何建议都会很重要。

【问题讨论】:

    标签: ios uiview ios9 nskeyedarchiver nskeyedunarchiver


    【解决方案1】:

    我假设您的 view1UIImageView 并且您从 imageNamed: API 将图像分配给它,就像这样

    view1.image = [UIImage imageNamed:@"abc.png"];
    

    你让它在 iOS8 上工作有点奇怪,因为这对我不起作用。

    虽然我不知道归档/取消归档方法的内部实现,但我猜测它不允许创建视图图像的副本。 您可以通过将UIImage 的内容加载到源视图来解决此问题。

    NSString *path = [[NSBundle mainBundle] pathForResource:@"abc" ofType:@"png"];
    view1.image = [UIImage imageWithContentsOfFile:path];
    

    现在您可以复制视图并在克隆视图中获取图像。

    【讨论】:

    • view1 是一个实例UIView,其中包含多个控件,如 UITextField、UIButton、UIImageView 等,我正在从界面生成器设置图像。
    • @TapasPal - 好的,你可以尝试像我上面建议的那样设置图像。暂时将其从 IB 中删除,看看是否可行。
    • @TapasPal - 您找到解决问题的方法了吗?我想知道我的想法是否正确。或者,如果还有其他问题,您可以发布自己的解决方案。
    • 直到现在我还在寻找解决方案。
    猜你喜欢
    • 2015-12-14
    • 2015-12-16
    • 2016-04-02
    • 2012-01-19
    • 1970-01-01
    • 2015-12-19
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多