我有一个菜单需要我动态生成。
UIImageView *menu_item = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"menu_item"]];
[menu_item setFrame:CGRectMake(0, 0, 10, 30)];
[menu addSubview:menu_item];
[menu_item setFrame:CGRectMake(10, 0, 10, 30)];
[menu addSubview:menu_item];
[menu_item setFrame:CGRectMake(20, 0, 10, 30)];
[menu addSubview:menu_item];
其中 menu
是一个 UIScrollView
。仅显示最后一个 menu_item
。
我知道我可以重新运行 initWithImage
来显示所有 3 个菜单项,但是有没有更快的方法来克隆 UIImageView
?
注意:我知道循环。不要告诉我可以通过 for 循环简化代码。
最佳答案
在您的情况下,您真的不需要担心性能。 UIImage imageNamed:内置缓存以提高性能,并且 UIView 的重量非常轻。
如果此菜单中可能包含数百个项目,那么您应该使用 UITableView 或 UICollectionView 而不是 UIScrollView。他们的细胞重用非常有效且易于实现。
关于ios - 在 UIView addSubview 期间克隆 UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23652623/