这是我的困境。在Objective-C和iOS编程方面,我和我一样裸露,因为我有点像菜鸟。我有leftBarButtonItem
(使用自定义视图)作为后退按钮的替代(因为backBarButtonItem
上不能使用自定义视图)。我还有rightBarButtonItem
(也使用自定义视图)和自定义titleView。
当leftBarButtonItem
小于某个宽度时,一切正常并且花花公子。 rightBarButtonItem
可能很大,titleView将调整大小并截断以适应可用空间,这正是应该如何,以及我想要它。
但是,如果相反的尺寸相反(rightBarButtonItem
小于某个宽度且leftBarButtonItem
巨大),则leftBarButtonItem
会完全消失,titleView
会拉伸以适应之前同时拥有leftBarButtonItem
和titleView
的整个空间。
我尝试交换自定义视图以查看它是否是我所做的事情,但是同样的问题仍然存在,视图交换了,仅在leftBarButtonItem
上。我也尝试使用常规标题,没有自定义titleView
,但无济于事。
在UINavigationItem
的文档中,在leftBarButtonItems
下,它指出“如果没有足够的空间来显示数组中的所有项目,那些将与标题视图重叠的项目(如果存在) )或者不显示栏右侧的按钮。“但是,应该有足够的空间来容纳按钮和标题,正如具有巨大的rightBarButtonItem
和截断的标题所证明的那样。更不用说,只有一个leftBarButtonItem
,而不是多个,我需要它来替换后退按钮功能。
有关如何阻止这种情况发生的任何想法?这是我正在使用的代码片段:
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;
答案 0 :(得分:1)
使抗压强度优先级提高BackButton
答案 1 :(得分:0)
您可以查看标题栏按钮的宽度吗?它实际上是缩小还是x位置只是改变并且它被推离屏幕....如果宽度实际上变成“0”而不是你应该强制将它设置回加载后的所需宽度其他按钮完成。