iOS11 navigationItem.titleView 适配问题

clipboard.png

navigationItem.titleView = 自定义view,
宽度200.在iOS10 及之前是OK的,
xcode9+iOS11,就出现了图一所示问题,
看UI结构发现宽度只有一点点,
不知道是哪里出的问题,
是iOS11出了什么新的东西导致的么?

请问这个问题该怎么解决呢?

问题补充:刚刚发现在iOS11 navigationItem.titleView = 自定义view,
自定义view里有个button,点击事件不触发了.在iOS10上是好的

阅读 22.7k
评论
    10 个回答
    • 57

    在iOS11 自定义titleview里有个button,点击事件不触发了.的解决办法如下:
    1:在自定义titleview 里重写 intrinsicContentSize 属性,代码如下:

    @property(nonatomic, assign) CGSize intrinsicContentSize;

    2:然后在 self.navigationItem.titleView = _titleView; 之前加入下面的代码:

    _titleView.intrinsicContentSize = CGSizeMake(200, 40);

    CGSizeMake(200, 40); 宽高 自己根据实际情况自己设置具体值就可以了。这样titleview 里的button 应该就可以点击了。

      苹果想让你使用 AutoLayout 机制,所以这里你需要设置:

      customView.translatesAutoresizingMaskIntoConstraints = false
        • 2
        • 新人请关照

        重写intrinsicContentSize方法

        - (CGSize)intrinsicContentSize
        {
            return CGSizeMake(200, 44);
        }
          • 2.2k

          iOS11导航栏titleView图层有变化.
          iOS 10及以下 自定义titleView会添加在navigationBar
          iOS 11 添加在UINavigationBarContentView上.
          iOS11适配

            我在present 之后在进行push navigationBar 上啥都没有了, 就算XIB拖一个出来也一样。 我崩溃了

              • 2
              • 新人请关照

              请问我的titleView里不是button而是手势 也是iOS11不能响应点击事件,iOS10可以 请问怎么修改?

                • 1
                • 新人请关照

                用自动布局设置宽高就可以了

                  iOS11之前默认不开启自动布局,iOS11之后模块打开了,所以原来用frame做的自定义view,需要实现intrinsicContentSize方法。

                    • 1
                    • 新人请关照

                    老铁,能不能给个demo学习一下啊?

                    该答案已被忽略,原因:无意义的内容,赞、顶、同问等毫无意义的内容

                      • 1
                      • 新人请关照

                      能给个demo 吗 急啊

                      该答案已被忽略,原因:无意义的内容,赞、顶、同问等毫无意义的内容

                        撰写回答

                        登录后参与交流、获取后续更新提醒

                        相似问题
                        推荐文章