cocoa-touch - 添加没有 XIB 的 subview

标签 cocoa-touch xcode ios uiview addsubview

这可能看起来非常简单,但我才刚刚开始,所以请多多包涵...

我有一个带工具栏的主视图。当用户按下工具栏中的按钮时,我希望在屏幕顶部出现一个小提示。我在现有的 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/

相关文章:

ios - 如何在 Swift 中实例化 NSViewController?

iOS - 在更新期间调试 NSUserDefault 崩溃的任何建议

ios - 如何更改 UIButton : The signup button in Parse`s PFLoginViewController 的颜色

iphone - iPad 开发与 iPhone 开发有何不同?

ios - 在 cocos2d 中停止触摸传播

objective-c - 将多个 NSObject 添加到 NSMutableArray

c - 在 macOS 上使用 Xcode 作为 root 运行应用程序时出现非法指令 (ud2)

objective-c - 使用选定区域的矩形框裁剪图像?

iphone - 点击/单击查看操作 Xcode

objective-c - 理解 iOS 泄漏调用堆栈跟踪