下面是我在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
}
}发布于 2012-02-22 22:03:12
如果你有几个带有相同标签的视图,函数viewWithTag将只返回一个视图,所以如果你调用它3次,你总是得到相同的视图。
要做你想做的事情,你可以迭代所有的子视图并检查标签:
for (UIView *aView in scrollView.subviews) {
if (aView.tag >= 100 && aView.tag < 117) {
aView.hidden = NO;
}
}发布于 2012-02-22 22:32:52
您是否在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中的代码以匹配您正在使用的标记。最好的方法是为min和max标记#define一个常量,并在for循环中使用这些常量。
https://stackoverflow.com/questions/9396194
复制相似问题