【问题标题】:Create UI chat like whatsapp and how to create event touch in navigation bar (iOS xamarin)创建像whatsapp这样的UI聊天以及如何在导航栏中创建事件触摸(iOS xamarin)
【发布时间】:2016-11-03 06:01:36
【问题描述】:

我想问一下iOS xamarin。我正在创建一个类似于 whatsapp 的应用程序,但遇到了以下问题:

  1. 在导航栏(标题栏)中创建类似whatsapp的UI,我将ImageView/Label拖到那里,但ImageView/Label被导航栏覆盖。如下图所示:

  2. 单击导航栏时,我想将用户定向到另一个控制器,但我不知道如何在导航栏中创建事件触摸/单击。你能给我一些建议吗?

【问题讨论】:

  • 这似乎是两个问题。请先搜索每个问题,如果没有找到任何问题,请为每个问题创建一个自己的主题。还请显示您遇到问题的代码(请不要显示整个程序)。

标签: ios xamarin navigationbar


【解决方案1】:

那是不触摸导航栏,它触摸放置在导航栏上的Button。长按 WhatsApp 中的 Title /name,您将看到突出显示的区域 - (触摸部分) - 这是一个按钮。

    let buttonContainer =  UIView(frame: CoreGraphics.CGRect(x: 0, y: 0, width: 200, height: 44));
    buttonContainer.backgroundColor = .clear
    let  lbltitle =  UILabel(frame: CoreGraphics.CGRect(x: 0, y: 0, width: 200, height: 44))
    lbltitle.text = "TITLE TO DISPLAY"
    buttonContainer.addSubview(lbltitle)
    let btnTitle =  UIButton(type: .custom)
    btnTitle.frame = CoreGraphics.CGRect(x: 0, y: 0, width: 200, height: 44);
    btnTitle.backgroundColor = .clear;
      buttonContainer.addSubview(btnTitle)
    btnTitle.removeTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
    navigationItem.titleView = buttonContainer

这是在按钮点击时推动视图控制器的代码。

 @objc func buttonTapped()
{
    navigationController?.pushViewController(ChatVC, animated: false)
}
       

【讨论】:

  • 非常感谢 ios_devloper 的帮助。我解决了问题 1。对于问题 2,如何使用 btnTitle 将视图控制器推送到其他控制器?我的 pushviewcontroller 代码是“NavigationController.PushViewController(new ViewProfileController(base.Handle), false);”,但我收到错误“Foundation.MonoTouchException:Objective-C 异常抛出。名称:NSInvalidArgumentException 原因:更多推送相同的视图控制器实例不支持一次以上 ()".
  • 我不使用 buttonTapped,因为我不知道如何使用它。我使用事件 TouchUpInside。仅限我的代码: btnTitle.TouchUpInside += (o, s) => { NavigationController.PushViewController(new ViewProfileController(base.Handle), false); };。我只想直接到 ViewProfileController。
  • 看来您正在多次添加 TouchUoInside ..我已经用代码修改了答案以推送视图控制器。
  • @Yulia 有帮助吗?
  • btnTitle 中只有一个事件 TouchUpInside。你能给我没有 segue 的推送视图控制器的代码吗,因为 btnTitle 是由代码自动创建的。非常感谢..
猜你喜欢
  • 1970-01-01
  • 2015-01-21
  • 1970-01-01
  • 2016-12-03
  • 2019-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-11
相关资源
最近更新 更多