这可能是奇怪的问题。我知道如何使用for循环重复uiview
int x=0;
int y=0;
for(int i = 0: i < 10: i++)
{
uiview *name = [[uiview alloc] initwithframe:(x,y,10,10);
[self.view addsubview:name];
y+=10; x+=10;
}
但是在这里,我需要的是在stroyboard或xib中分配的uiview,它有像
这样的连接IBOutlet UIView *dummyView;
需要更改虚拟视图y位置(如复制过去或重复相同视图)。是否可以在代码中执行此操作,如上面的代码(for loop)
int y=0;
for(int i = 0: i < 10: i++)
{
// need to change dummyview y position
y+=10;
}
这里10是可变的。
注意: 这里可以使用uitableview,动态虚拟视图是tablecell的子视图我不想在tablecell中使用tableview。
也可以使用scrollview但我不想浪费内存,因为这个tableviewcell喜欢显示更多选项(记得uilable显示更多或更少的选项)。如果你想看到更多的uiview而不是它只会重复那个视图,否则它只是一个uiview。
更新 我想以编程方式复制过去的uiview。来自xib或storyboard的UIView(selfview的子视图)。 我正在使用autolayout。 这个uiView有多个uibutton和uilabel如何识别特定视图和uibutton等。
希望这是可以理解的:) ..如果没有添加评论。
答案 0 :(得分:0)
不确定您的意思,但如果您想复制多个视图,可以试试这个
int y=0;
for(int i = 0: i < 10: i++)
{
UIView *copyOfView = (UIView*)[NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:_dummyView]];
CGRect frame = copyOfView.frame;
frame.origin.y = i*10;
copyOfView.frame = frame;
[self.view addSubView:copyOfView];
}
如果从.xib文件加载UIView,则应替换:
UIView *copyOfView = [[[NSBundle mainBundle] loadNibNamed:@"YourCustomView" owner:self options:nil] objectAtIndex:0];
答案 1 :(得分:0)
我不确定您是否可以在故事板中重复使用这样的视图。 实现您想要做的事情的正确方法是使用xib创建一个新的UIView子类。 在IB中进行设计。添加所需的所有子视图并附加IBOutlets。 在那里你有一个可重复使用的视图。