【问题标题】:UISegementedControl reverts back to original frame after touchUISegmentedControl 触摸后恢复到原始帧
【发布时间】:2014-04-09 13:40:05
【问题描述】:

每次我点击我的 UISegementedControl 时,它都会恢复到原来的帧。我几乎无法通过我的半透明工具栏看到它。 我有一个带有 UITableView 的 UIViewController 和 UIToolBar,如下所示:

在表格视图下方,工具栏后面隐藏了一个 UISegmentedControl:

Filter按钮调用'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];
    }];

}

【问题讨论】:

    标签: ios ios7 uisegmentedcontrol uiviewanimation


    【解决方案1】:

    这是因为自动布局。启用它(默认情况下)后,您应该通过修改约束而不是设置框架来对视图进行任何定位或调整大小。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 2023-03-11
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多