【问题标题】:Buttons/Links under view object in .xib file are not responding.xib 文件中视图对象下的按钮/链接没有响应
【发布时间】:2017-03-14 18:08:07
【问题描述】:

谁能告诉我为什么我的 .xib 文件中“许可协议视图”UIView 对象下的按钮都没有触发操作?似乎 Scrollview 对象正在搞乱行为。当按钮直接位于“滚动视图”对象(与“许可协议视图”UIView 对象相反)下时,它们可以正常工作。但是,我需要将我的按钮分组到 UIViews 下,如下面的视图层次结构所示。

这是视图布局:

这是我的视图层次结构:

这是相应的 .m 文件:

@interface MYViewController ()
     - (IBAction)licenseAgreementPressed:(id)sender;
     - (IBAction)legalDisclaimerPressed:(id)sender;
     - (IBAction)privacyStatementPressed:(id)sender;

     @property (strong, nonatomic) IBOutlet UIView *licenseAgreementView;
     @property (weak, nonatomic) IBOutlet UIButton *legalDisclaimerButton;
     @property (strong, nonatomic) IBOutlet UIButton *privacyStatementButton;
@end

@implementation MYViewController
- (IBAction)licenseAgreementPressed:(id)sender
{
     NSLog(@"Pressed A");
}

- (IBAction)legalDisclaimerPressed:(id)sender
{
     NSLog(@"Pressed B");
}

- (IBAction)privacyStatementPressed:(id)sender 
{
     NSLog(@"Pressed C");
}
@end

【问题讨论】:

  • 您是否正确连接了ibaction?是否已加载视图?您是否设置了视图的文件所有者?请提供更多详细信息。

标签: ios objective-c xcode interface-builder xib


【解决方案1】:

确保您已在 IBAction(code) 和 UIButton(in xib) 之间建立连接,请查看此帖子 How do I name and link an IBAction button created in a storyboard

【讨论】:

  • 连接正常。请参阅更新的问题以获取更多信息。谢谢!
  • 按钮放置在哪个视图层次结构下并不重要,如果连接正确,它应该可以工作
  • 还要确保没有其他视图覆盖这样按钮交互被禁用。检查raywenderlich.com/98356/view-debugging-in-xcode-6如何
  • 是的,我以前也看过那个教程。这几乎就像“许可协议视图”覆盖了下面的按钮。我尝试以编程方式添加 [self.scrollView sendSubviewToBack:self.licenseAgreementView];但这没有用。
【解决方案2】:

您是否通过控制拖动将您的操作连接到界面构建器中的元素? 如果您的操作已连接,您将在编辑器中的行左侧看到一个小圆圈。 查看this tutorial,了解有关如何将情节提要元素连接到代码的更多信息。

【讨论】:

  • 是的,它们已正确连接。请参阅更新的问题以获取更多信息。谢谢!
【解决方案3】:

这是因为没有一个按钮在许可协议视图的范围内。超出其父视图边界的按钮是不可点击的。

【讨论】:

  • 您能否再解释一下和/或提供解决方案的示例?谢谢!
  • 没有显示正在运行的应用程序或您的 xib 文件的屏幕截图,也没有解释这些视图如何获得大小当它们被放入界面时。 需要解释,而不是我。
【解决方案4】:

所以问题在于链接、按钮和文本字段实际上并未位于指定父视图的范围内,因为原始 .xib 文件没有将所需的约束固定到这些元素上。我通过选中 Attributes Inspector 窗格中的“clip to bounds”复选框发现了这一点。 Whenever "clip to bounds" was checked, the app was NOT displaying any of the above view objects;当未选中“剪辑到边界”时,我只能看到链接、按钮和文本字段,但不幸的是,这些元素当时不可点击。然而,在设置了必要的约束之后,视图元素被正确地放置在其父视图的边界内,并且文本字段、标签和按钮变得可点击。我附上了我用来解决问题的约束。注意:未展开的约束仅包括高度约束。

【讨论】:

    猜你喜欢
    • 2014-09-27
    • 2018-02-18
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多