我在编写一个应用程序,它使用UITabBar
作为导航的一部分。我还使用UIScrollView
来呈现比屏幕可以处理的更多信息。因此,我需要设置滚动视图来考虑UITabBar
的高度,以便显示所有信息。计算UITabBar的高度
有没有办法计算UITabBar
的height
?
我在编写一个应用程序,它使用UITabBar
作为导航的一部分。我还使用UIScrollView
来呈现比屏幕可以处理的更多信息。因此,我需要设置滚动视图来考虑UITabBar
的高度,以便显示所有信息。计算UITabBar的高度
有没有办法计算UITabBar
的height
?
是320×49
如果你想测试,开放的界面生成器,添加中的UITabBar一样,进入的统治者,你会看到它
UITabBar is inherited from UIVIew这样你就可以使用frame.size.height获得高度
我正在寻找做一些类似的事情,在ViewController视图的VISIBLE部分居中标签。这个ViewController属于一个UITabBarController。
下面是我用于中心我标签的代码:我用[[自视图]界限]不[[自视图]帧],因为后者包括20像素顶栏作为
UILabel *roomLabel = [[UILabel alloc] init];
CGRect frame = [[self view] bounds];
float tabBarHeight = [[[super tabBarController] tabBar] frame].size.height;
frame.size.height -= tabBarHeight;
[roomLabel setFrame:frame];
[[self view] addSubview:roomLabel];
[roomLabel release];
通知Y偏移(抛出垂直居中)。
希望这可以帮助别人!顺便说一下:我使用iOS 4.3和XCode 4,TabBar高度的“硬代码”值仍然是49!
我知道这并不理想,但我真的不想在任何地方都有一个奇数。我所做的就是创建一个一次性的UITabBarController,并从那里获得高度。
我这样做也是因为[UITabBar initWithFrame:]按照需要工作,但是做[bar setFrame:]没有。我需要创作时的框架才是正确的。
UITabBarController *dtbc = [[[UITabBarController alloc] init] autorelease];
CGRect tabRect = [[[self navigationController] view] frame];
tabRect.origin.y = tabRect.size.height - [[dtbc tabBar] frame].size.height;
tabRect.size.height = [[dtbc tabBar] frame].size.height;
tabBar_ = [[UITabBar alloc] initWithFrame:tabRect];
我喜欢的是,它会正确地将标签栏放在父级的底部,而不管父母的大小。
如果视图控制器的祖先是选项卡栏控制器,则可以从该选项卡栏中检索高度。
CGFloat tabBarHeight = self.tabBarController.tabBar.frame.size.height;
这应该在大多数情况下对UIViewController中的任何实例:
bottomLayoutGuide.length
斯威夫特3+
let tabBarHeight = tabBarController?.tabBar.frame.size.height
print(tabBarHeight ?? "not defined")
应该打印49.0(类型CGFloat的)
在斯威夫特:
let height = self.tabBarController?.tabBar.frame.height ?? 49.0
依靠标签栏的实际高度,并使用幻数作为后备。
是否保证始终保持这种状态?我宁愿使用API来获取该值,而不愿意使用IB并在应用程序中插入幻数。 – 2010-06-24 03:16:25
UITabBar继承自UIView,因此您可以尝试使用UIView的frame.size.height – vodkhang 2010-06-24 03:18:25
当我从工作中回来时,会给我一个镜头。你知道我是否可以在不创建对象的实例的情况下获得该信息?此外,创建一个虚拟实例或将应用程序委托中的正在使用的UITabBar传递给我正在使用的视图以便它具有更准确的值会更好吗? – 2010-06-24 03:22:47