Objective c 当navigationItem.titleView和RightBarButtonim占据UINavigationBar的大部分时,如何阻止LeftBarButtonim消失?
我有一个Objective c 当navigationItem.titleView和RightBarButtonim占据UINavigationBar的大部分时,如何阻止LeftBarButtonim消失?,objective-c,ios,uinavigationbar,uibarbuttonitem,uinavigationitem,Objective C,Ios,Uinavigationbar,Uibarbuttonitem,Uinavigationitem,我有一个leftBarButtonim(使用自定义视图),它替代了后退按钮(因为自定义视图不能在BackBarButtonim上使用)。我还得到了一个RightBarButtonim(也使用自定义视图)和一个自定义标题视图 当leftBarButtonItem小于某个宽度时,一切都会正常工作。rightBarButtonItem可能很大,标题视图将调整大小并截断以适应可用空间,这正是它应该的样子,也是我想要的样子 但是,当相同的尺寸反转时(rightbuttonite小于某个宽度和leftbar
leftBarButtonim
(使用自定义视图),它替代了后退按钮(因为自定义视图不能在BackBarButtonim
上使用)。我还得到了一个RightBarButtonim
(也使用自定义视图)和一个自定义标题视图
当leftBarButtonItem
小于某个宽度时,一切都会正常工作。rightBarButtonItem
可能很大,标题视图将调整大小并截断以适应可用空间,这正是它应该的样子,也是我想要的样子
但是,当相同的尺寸反转时(rightbuttonite
小于某个宽度和leftbarbuttonite
巨大),leftbarbuttonite完全消失,而标题视图
将延伸以适应之前容纳左巴布托体
和标题视图
的整个空间
我尝试交换自定义视图,以查看这是否是我所做的事情,但相同的问题仍然存在于交换的视图中,同样只出现在leftBarButtonItem
上。我还尝试使用常规标题,没有自定义的标题视图
,但没有效果
在UINavigationItem
的文档中,在LeftBarButtonims
下,它指出“如果没有足够的空间显示数组中的所有项目,则不会显示与标题视图(如果存在)或栏右侧按钮重叠的项目。”,应该有足够多的空间来容纳按钮和标题,比如有一个巨大的rightBarButtonItem
和一个截断的标题。更不用说,只有一个leftBarButtonim
,而不是多个,我需要它出现以替换后退按钮功能
有没有办法阻止这种情况发生?下面是我正在使用的代码片段:
self.navigationItem.titleView = [[TitleView alloc] initWithFrame:CGRectMake(0, 0, 220, 44)];
self.navigationItem.titleView.backgroundColor=[UIColor clearColor];
FollowButton *follow = [[FollowButton alloc] initWithFrame:CGRectMake(0, 0, 62, 34)];
UIBarButtonItem *followButton = [[UIBarButtonItem alloc] initWithCustomView:follow];
self.navigationItem.rightBarButtonItem = followButton;
BackButton *back = [[BackButton alloc] initWithFrame:CGRectMake(0, 0, 108, 34)];
[back addTarget:self.navigationController action:@selector(popViewControllerAnimated:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:back];
self.navigationItem.leftBarButtonItem = backButton;
你能检查一下标题栏按钮的宽度吗?它是真的缩小了还是x位置只是改变了,然后被推离了屏幕。。。。如果宽度实际上变为“0”,则在加载其他按钮后,您应该能够强制将其设置回所需的宽度。将压缩阻力优先级设置为高于
BackButton
看起来您的标题视图太大了。只要进入代码,看看屏幕有多大,你的问题就会得到回答。[UIScreen mainScreen]bounds].size.Width如果我将leftBarButtonItem保留为一个相当小的大小,并将rightBarButtonItem设置为巨大,直到它占据了导航栏的大部分,标题视图将自动调整大小,文本将被截断(如预期的那样)以适应剩余的小区域。如果我做相反的事情,右巴布托体小,左巴布托体大,左巴布托体就隐藏了。我希望标题视图能够调整大小以适应它们之间的关系。我希望它能缩小,这样更容易修复。不,大小保持不变,并且隐藏起来。理想的行为是标题视图缩小,就像左右按钮切换时一样。但是你能通过编程方式减小它的宽度,迫使它消失吗?