这可能看起来非常简单,但我才刚刚开始,所以请多多包涵...
我有一个带工具栏的主视图。当用户按下工具栏中的按钮时,我希望在屏幕顶部出现一个小提示。我在现有的 UIView 中添加了一个 UIView,并将其设置为隐藏。我将其连接到我的 View Controller 中名为“searchView”的 ivar,并尝试了以下操作:
searchView.hidden = NO;
当这不起作用时,我尝试添加...
[self.view addSubview:self.searchView];
...这也没有用。
我是否需要以某种方式设置索引以将其置于主视图之上?
这种方法是完全错误的吗?
最佳答案
如果您从界面构建器创建 UIView,请忘记使用 addSubview,因为界面构建器会自动执行此操作。
要在图形模式 (IB) 中执行此操作,请按照以下步骤操作:
在文件“h”中定义一个 IBOutlet 应该是这样的:
IBOutlet UIView * myHiddenView;
然后在 IB 中,将您在 h 文件中定义的 IBOutlet 连接到您在 IB 中以图形方式创建的 UIView,并将隐藏属性赋予此 UIView(复选框)。
然后在您的按钮按下方法中执行此操作:
myHiddenView.hidden = NO;
如果您更喜欢以编程方式复制此示例代码:
在.h文件的接口(interface)中定义
UIView *myHiddenView;
.h文件中的接口(interface)之后:
-(void)displayView:(id)sender;
然后在.m文件中:
-(void)viewDidLoad{
myHiddenView = [[UIView alloc] initWithFrame: CGRectMake (x, y, width, height)];
myHiddenView.hidden = YES;
[self.view addSubview: myHiddenView]
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(x, y, width, height)];
[button setTitle:@"button" forState:(UIControlState)normal];
[button addTarget: self action: @selector(displayView:) forControlEvents: UIControlEventTouchUpInside];
[self.view addSubview:button];
}
-(void)displayView:(id)sender{
myHiddenView.hidden = NO;
}
关于cocoa-touch - 添加没有 XIB 的 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5026246/