2014-04-19 235 views
0

我發現了很多討論,但任何工作都適合我。 我在一個視圖控制器創建一個工具欄:以編程方式隱藏工具欄

UIToolbar *toolBar =[[UIToolbar alloc]initWithFrame:CGRectMake(0,[[UIScreen mainScreen]bounds].size.height - 49,[[UIScreen mainScreen] bounds].size.width, 49)]; 

[toolBar setTranslucent:YES]; 

UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 

UIBarButtonItem *buttonfb = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"fb.png"] style:UIBarButtonItemStyleBordered target:self action:@selector(condividiFB)]; 
UIBarButtonItem *buttontw = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"twitter.png"] style:UIBarButtonItemStyleBordered target:self action:@selector(condividiTW)]; 

NSArray *toolbaritems = [NSArray arrayWithObjects:flexibleSpace, buttonfb,flexibleSpace, buttontw,flexibleSpace, nil]; 
toolBar.items = toolbaritems; 

[self.view addSubview:toolBar]; 

沒關係。該工具欄的外觀非常可愛,但我想在滾動過程中隱藏或移動它。 我檢測到滾動並用以下解決方案調用方法,但不工作。 當我嘗試隱藏工具欄,也沒有。 我嘗試了很多解決方案,我在這裏介紹。 樣品:

[self.toolBar removeFromSuperview]; 

但沒有; 另一種方式:

[_toolBar setHidden:YES]; 

既不;

嘗試移動:

self.toolBar.frame = CGRectMake(self.toolBar.frame.origin.x, self.toolBar.frame.origin.y + 100, self.toolBar.frame.size.width, self.toolBar.frame.size.height); 

沒有什麼作品。 我開始瘋狂了。

+1

在你從未設置的那一刻'self.toolBar'(至少在你的代碼發佈)。 – rmaddy

+0

''[self.view addSubview:toolBar]'add'[toolBar setHidden:YES]''後。現在它消失了,不是嗎? – bevoy

+0

嗯,self.toolbar是零,對不對? – Michael

回答

0

使用您定義的屬性向上設置工具欄,而不是您的示例中的本地作用域變量。

更改此:

UIToolbar * toolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0,[[UIScreen mainScreen]bounds].size.height - 49,[[UIScreen mainScreen] bounds].size.width, 49)]; 

要這樣:

self.toolBar = [[UIToolbar alloc]initWithFrame:CGRectMake(0,[[UIScreen mainScreen]bounds].size.height - 49,[[UIScreen mainScreen] bounds].size.width, 49)]; 
+0

OP已具有這樣的屬性(請參閱使用'self.toolBar'的代碼)。 – rmaddy

+0

你說得對。他只需要設置他已有的財產。 – Aaron

+0

它也可能是一個插座.... – Aaron