【问题标题】:programmat button and storyboard button程序按钮和故事板按钮
【发布时间】:2014-02-20 15:27:03
【问题描述】:

我在导航栏中有一个按钮和一个搜索字段,我通过一个类的代码为所有视图添加了一个新按钮。

问题是:在按钮视图中,另一个按钮和添加故事板的搜索字段不是更可触摸且不起作用。

UIImage * buttonImage = [UIImage imageNamed:@"chat-notify.png"];

button = [UIButton buttonWithType:UIButtonTypeCustom];
[button addTarget:self
           action:@selector(goChat)
 forControlEvents:UIControlEventTouchDown];
//[button setTitle:@"1" forState:UIControlStateNormal];
button.frame = CGRectMake(280.0, 25.0, 30.0, 30.0);
[button setBackgroundImage:buttonImage forState:UIControlStateNormal];

[self.view addSubview:button];

然后在控制器中:

 notificationViewController* notification = [[notificationViewController alloc]init];
//[notification methodA];

[notification makeButtonNotification];

[self.view addSubview:notification.view];

有谁知道我的错误在哪里?

谢谢

【问题讨论】:

    标签: ios objective-c uibutton programmatically-created


    【解决方案1】:

    为什么你要添加按钮肯定有它并改变它的隐藏状态会更容易然后你可以将它全部保留在情节提要中

    UIControlEventTouchUpInside
    

    你应该使用的不是“UIControlEventTouchDown”

    TouchUpInside 通常是您从按钮触发操作的事件。这是用户在按下按钮后从按钮上抬起的时候。您不想触发 Touch Down 上的操作,因为用户可能会将手指从按钮上移开以取消按下,这是 iOS 上的标准和预期行为

    更新:根据您对此答案的评论,您可能需要将按钮添加到您认为继承人 achy 的特定点。在您的故事板中,视图将被添加,因为它们从上到下在该故事板中列出,底部的一个是顶视图。

    尝试明显确保您想要接收触摸的视图不直接位于每个视图的顶部并且它们不重叠。还可以尝试在特定视图的上方或下方添加以编程方式生成的按钮,而不是仅仅将其设为主视图中的顶部子视图,这听起来不是您想要的。

    当您添加这样的按钮时

    [self.view addSubview:button];
    

    这样可能会更好

    [self.view insertSubview:button aboveSubview:someOtherView]
    

    为此,您可能需要将“someOtherView”连接到 IBOutlet,以便您可以在代码中引用它。当您需要更精确时,您最有可能将按钮放在其他所有内容上。

    【讨论】:

    • 嗯.. 我不明白... UIControlEventNormal 呢?我需要通过代码设置一个按钮,因为我必须设置数字通知,并且该按钮在所有视图中,而另一个按钮是我们 JASidePannel 并且不会以编程方式工作...
    • 对不起,我不明白你的问题可能会显示更多代码。因为在多个视图中使用同一个按钮不一定是您想要做的。
    • 谢谢,我不知道。顺便说一句,这不是问题吗..就像我从代码中添加按钮视图时一样,这涵盖了其他对象...
    • 我已经更新了我的答案,希望能让您了解如何解决您的问题。
    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    • 2018-02-09
    • 1970-01-01
    相关资源
    最近更新 更多