0
每次點擊我的UISegementedControl時,它都會回到原始框架。我幾乎看不到透過我的半透明工具欄。 我有一個UITableView一個UIViewController和UIToolBar這樣的: UISegementedControl在觸摸後恢復到原始框架
存在隱患只是表視圖下方一個UISegmentedControl,工具欄背後:
過濾按鈕調用「onFilterButtonPressed」的方法
- (IBAction)onFilterButtonPressed:(id)sender
{
if(self.filterBar.hidden){
[self showFilterBar];
} else {
[self hideFilterBar];
}
}
- (void)hideFilterBar
{
CGRect filterBarFrame = CGRectMake(0, self.view.frame.size.height+(self.filterBar.frame.size.height+1), self.filterBar.frame.size.width, self.filterBar.frame.size.height);
CGRect tableViewFrame = CGRectMake(self.tableView.frame.origin.x, self.tableView.frame.origin.y,self.tableView.frame.size.width, self.tableView.frame.size.height+(self.filterBar.frame.size.height+1));
[UIView animateWithDuration:0.3 animations:^{
[self.filterBar setFrame:filterBarFrame];
[self.tableView setFrame:tableViewFrame];
} completion:^(BOOL finished) {
self.filterBar.hidden = YES;
}];
}
- (void)showFilterBar
{
CGRect filterBarFrame = CGRectMake(0, self.view.frame.size.height-(self.filterBar.frame.size.height+1), self.filterBar.frame.size.width, self.filterBar.frame.size.height);
CGRect tableViewFrame = CGRectMake(self.tableView.frame.origin.x, self.tableView.frame.origin.y,self.tableView.frame.size.width, self.tableView.frame.size.height-(self.filterBar.frame.size.height+1));
self.filterBar.hidden = NO;
[UIView animateWithDuration:0.3 animations:^{
[self.tableView setFrame:tableViewFrame];
[self.filterBar setFrame:filterBarFrame];
}];
}
謝謝,蘋果公司關於動畫的文檔並沒有提到關於動畫約束的任何內容,而是關於設置框架。我發現這與你的建議[http://stackoverflow.com/questions/12622424/how-do-i-animate-constraint-changes](http://stackoverflow.com/questions/12622424/how-doi-i-動畫 - 約束 - 變化)並且工作。 – doman412