相关疑难解决方法(0)

iOS 11 iPhone X模拟器UITabBar图标和标题顶部呈现在彼此之上

任何人在UITabBar组件周围遇到iPhone X模拟器问题?

我似乎将图标和标题呈现在彼此之上,我不确定我是否遗漏了任何东西,我也在iPhone 8模拟器中运行它,以及一个看起来很好的实际设备,如图所示故事板.

iPhone X:

iPhone X UITabBar错误

iPhone 8

iPhone 8 UITabBar有效

iphone uitabbar ios11 xcode9-beta iphone-x

131
推荐指数
10
解决办法
3万
查看次数

UITabBar项目在iOS 12.1上跳回导航

UITabBarController在主屏幕上有一个iOS应用程序,导航到隐藏UITabBarControllerwith设置的详细信息屏幕hidesBottomBarWhenPushed = true.

当回到主屏幕时,UITabBarController会发出奇怪的"跳跃",如此GIF所示:

在此输入图像描述

仅在iOS 12.1上发生,而不是在12.0或11.x上发生.

看起来像iOS 12.1的错误,因为我注意到其他应用程序如FB Messenger有这种行为,但我想知道,是否有某种解决方法呢?

uitabbar ios swift

59
推荐指数
3
解决办法
8022
查看次数

在iOS 7上,如果控制器最终包含在标签栏控制器中,则使用工具栏推送控制器会留下无法使用的空间

在我的iOS应用程序中,我的窗口的rootViewController是一个标签栏控制器,其层次结构如下:

  • 的UITabBarController
    • UINavigationController 1
      • FirstContentController
    • UINavigationController 2
      • ...
    • UINavigationController 3
      • ...
    • ...

当用户点击某一行时FirstContentController,一个实例SecondController将被推送到其导航控制器上.SecondContentControllerhidesBottomBarWhenPushedYES在其init方法和套self.navigationController.toolbarHiddenNOviewWillAppear:.

在iOS 6中,用户将挖掘该行FirstControllerSecondController会得到推到导航控制器.因为它已hidesBottomBarWhenPushed设置,它将隐藏标签栏,并且在转换动画完成时,SecondController它将在屏幕上显示其工具栏.

但是,在iOS 7下进行测试时,其hidesBottomBarWhenPushed行为似乎已发生变化.我现在看到的是:

  • 标签栏隐藏,如预期的那样
  • 按预期显示工具栏
  • 在工具栏和内容视图之间出现一个无法使用的空间,正好有49像素高(标签栏的高度)

差距完全无法使用 - 它不响应触摸,如果我clipsToBounds在主视图上设置为YES,则没有任何内容.经过大量的调试和检查子视图层次结构后,看起来iOS的自动调整机制将视图控制器的视图调整为高度411(在iPhone 5上).应该是460到达工具栏,但布局系统似乎包括一个"鬼"49像素高的标签栏.

如果视图控制器的标签栏控制器为其父容器,则只会出现此问题.

在iOS 7上,当按下新控制器时,如何使标签栏消失并且工具栏无缝滑动到位,并且视图还占用导航项和工具栏之间的整个空间?

UPDATE

经过进一步调查后,只有在SecondController edgesForExtendedLayout设置为时才会发生这种情况UIRectEdgeNone.但是,除非我将该属性设置为,否则UIRectEdgeNone视图的框架太长并且在工具栏下方延伸,在该工具栏中无法看到或与之交互.

iphone objective-c uinavigationcontroller ios ios7

39
推荐指数
4
解决办法
2万
查看次数

每当在iPhone X中推送ViewController时,TabBar就会向上移动

我最近在我的应用程序上添加了对iOS 11的支持,这种情况开始发生.基本上,只要将ViewController添加到导航堆栈,标签栏就会在动画期间出现问题.

它只发生在iPhone X中,这只是一个常规的TabBarController.是什么造成的?

这是怎么回事

tabbar ios iphone-x

10
推荐指数
1
解决办法
1131
查看次数

如何以编程方式替换UITabBarController的UITabBar

由于以下问题,我需要为我的项目使用UITabBar的子类:为什么页面Push动画Tabbar在iPhone X中向上移动

我不使用情节提要。如何以编程方式完成此操作?

-更新-

我的CustomTabBarController.swift文件现在看起来像这样:

import UIKit

@objc class customTabBarController: UITabBarController {
    override var tabBar: UITabBar {
        return customTabBar
    }
}
Run Code Online (Sandbox Code Playgroud)

我的CustomTabBar.swift文件如下所示:

import UIKit

class customTabBar: UITabBar {

    override var frame: CGRect {
        get {
            return super.frame
        }
        set {
            var tmp = newValue
            if let superview = superview, tmp.maxY !=
                superview.frame.height {
                tmp.origin.y = superview.frame.height - tmp.height
            }

            super.frame = tmp
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但这给了我以下错误:

Cannot convert return expression of type 'customTabBar.Type' to return type 'UITabBar'
Run Code Online (Sandbox Code Playgroud)

uitabbarcontroller uitabbar ios

3
推荐指数
1
解决办法
1062
查看次数