以下代码我写的是隐藏viewDidLoad中的一些按钮。这里的按钮正在隐藏
- (void)viewDidLoad
{
for (int i = 100; i<117; i++)
{
UIButton *smileyButton = (UIButton *)[scroll viewWithTag:i];
UITextField *smileyFields = (UITextField *)[scroll viewWithTag:i];
UIImageView *smileyImage = (UIImageView *)[scroll viewWithTag:i];
smileyFields.hidden = YES;
smileyButton.hidden = YES;
}
}
现在正在进行以下操作,使按钮可见。但按钮不可见
-(IBAction)editButton:(id)sender
{
for (int i = 100; i<117; i++)
{
UIButton *smileyButton = (UIButton *)[scroll viewWithTag:i];
UITextField *smileyFields = (UITextField *)[scroll viewWithTag:i];
UIImageView *smileyImage = (UIImageView *)[scroll viewWithTag:i];
[smileyFields setHidden:NO]; //TextFields Not Visible
[smileyButton setHidden:NO]; //Buttons Not Visbile
}
}
答案 0 :(得分:1)
如果您有多个具有相同标记的视图,则函数viewWithTag将只返回一个视图,因此如果您调用此视图3次,则始终获得相同的视图。
要执行您想要的操作,您可以迭代所有子视图并检查标记:
for (UIView *aView in scrollView.subviews) {
if (aView.tag >= 100 && aView.tag < 117) {
aView.hidden = NO;
}
}
答案 1 :(得分:0)
您是否在Interface Builder中构建视图控制器?如果是这样,请将要隐藏的每个内容的标记设置为不同的数字:尝试简单的内容,如1,2,3等。如果您在代码中构建,请设置tag
属性。记住你的最大标签号(让我们假设它是4)。
然后将以下内容添加到.h:
- (void)setTaggedViewsHidden:(BOOL)hidden;
以及你的.m:
- (void)setTaggedViewsHidden:(BOOL)hidden {
for (NSInteger tag = 1; tag <= 4; tag++) {
[scroll viewWithTag:tag].hidden = hidden;
}
}
在viewDidLoad
调用中,就像这样:
[self setTaggedViewsHidden:YES];
并在editButton:
选择器中将其命名为:
[self setTaggedViewsHidden:NO];
请务必调整setTaggedViewsHidden
中的代码以匹配您正在使用的代码。执行此操作的最佳方法是#define
最小和最大标记的常量,并使用for
循环中的常量。