我有一個iPhone/iPad的通用應用程序,我想有一個自定義導航欄,導航欄的上半部分包含我們公司的標誌,下半部分是標準導航欄。帶按鈕的iPhone自定義導航欄不點擊
我想出瞭如何做到這一點,在下面的代碼中顯示,但我的UIButton「logosButton」並不總是響應被點擊,它看起來好像只有某些部分的按鈕是活躍的,而其他人不做任何事情所有...我不明白爲什麼這是。
- (void)viewDidLoad {
[super viewDidLoad];
[[self view] addSubview: navController.view];
float width = IS_IPAD ? 768.0f : 320.0f;
float logosHeight = IS_IPAD ? 20.0f : 20.0f;
float barHeight = IS_IPAD ? 32.0f : 32.0f;
self.navBar = [[UINavigationBar alloc] initWithFrame: CGRectMake(0.0f, logosHeight, width, barHeight)];
UIView *tempView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, width, logosHeight)];
UIButton *logosButton = [[UIButton alloc] init];
[logosButton setBackgroundImage:[UIImage imageNamed:@"logo_bar_alone.png"] forState:UIControlStateNormal];
[logosButton setBackgroundImage:[UIImage imageNamed:@"logo_bar_alone.png"] forState:UIControlStateHighlighted];
[logosButton addTarget:self action:@selector(logosButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
[logosButton setFrame: CGRectMake(0, 0, width, logosHeight)];
[tempView addSubview: logosButton];
[[self view] addSubview: tempView];
[tempView release];
[[self view] addSubview: self.navBar];
self.navItem = [[UINavigationItem alloc] initWithTitle: @"Home"];
[self.navBar pushNavigationItem:self.navItem animated:NO];
}
的方法:logosButtonClicked
也解僱每一個現在,然後當我點擊的UIButton,但我很清楚我點擊某個點在那裏什麼也沒有發生在所有...
很沮喪,我不似乎,看到一個模式在哪裏它的活躍,但有人可以請幫助在這裏?
編輯
我想我剛纔穿過的東西絆倒了,我改變了按鈕的UIButtonTypeRoundedRect並擺脫了圖像的(並且也使得大),看來,我無法點擊底部或按鈕圓角處的按鈕頂部。所以中間的矩形部分是我可以點擊的唯一部分...爲什麼會這樣?
編輯2 對於任何人查看這個問題,請參閱他的答案最新編輯。導航控制器出於某種原因正在進行觸摸,我需要弄清楚爲什麼會這樣,可能是一個錯誤?
我想我剛剛偶然發現了一些東西,我將按鈕更改爲一個UIButtonTypeRoundedRect,並擺脫了圖像(並使它變大),看起來我無法點擊按鈕的底部或頂部,按鈕是圓形的。所以中間的矩形部分是我可以點擊的唯一部分...爲什麼會這樣? – Mark 2010-09-10 02:08:21
這真的很奇怪!我不確定,但作爲一種解決方法,您可能想嘗試以不同的方式創建按鈕......比如繼承UIButton,然後在子類按鈕的layoutSubviews方法中設置背景圖像。 – taber 2010-09-10 02:20:59
感謝編輯,但仍然沒有運氣,我完全沒有想法... – Mark 2010-09-10 03:37:31