Tweetbot等导航栏中的UIButton

时间:2012-10-14 15:54:24

标签: iphone objective-c ios uinavigationbar uinavigationitem

我想重现像导航栏一样的Tweetbot 我仍在搜索是否可以在UIButton中放置UINavigationBar代替标题,以使其完全适合左右按钮,就像完成后一样在Tweetbot申请中。
当我尝试这样做时,超过一定大小self.navigationItem.titleView会自动调整大小

告诉我,如果我错过了一些明显的东西,
谢谢

我提供了两个屏幕截图,让您看到我在说什么 Button normal
Button hihlighted

3 个答案:

答案 0 :(得分:1)

他们可能已经开始实施UINavigationBar和/或UINavigationController。我想这不值得尝试破解UIKit,因为它非常脆弱而且不会出现面向未来。

答案 1 :(得分:0)

您可以在导航项的标题视图属性中添加一个按钮,该属性接受UIView,并且由于UIButton是UIView的子类,因此这不是问题。

或者,如果您使用的是故事板,只需将按钮拖动到导航栏的中心即可,这很容易。

// Create the button, and specify the type
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

// Set the button's frame
button.frame = CGRectMake(0.0f, 0.0f, 30.0f, 30.0f);

// Set your custom image for the button
[button setImage:[UIImage imageNamed:@"YOUR_IMAGE_NAME"]  forState:UIControlStateNormal];

// Set the button's action, which is the method that will be called when it is pressed
[button addTarget:self action:@selector(doSomething:) forControlEvents:UIControlEventTouchUpInside];

// Add the button to the navigation bar's title view
[self.navigationItem.titleView addSubview:button];

SDK参考: https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UINavigationItem_Class/Reference/UINavigationItem.html

答案 2 :(得分:0)

您是否尝试在titleView上将autoresizesSubviews设置为YES,然后在UIButton上设置正确的自动调整遮罩?如果这不起作用,我建议您创建自定义视图子类并覆盖-layoutSubviews以满足您的需求。