2015-07-22 127 views
2

我正在制作这种类型的屏幕。 Tabs
我用3 UIButton并以编程方式给它们边框。小红线是UIView。我提供了一个约束UIView等宽趋势按钮。 现在我的问题是,当用户点击下一个按钮时,这个UIView应该移动到下一个按钮。

视图控制器是600x600和下一个按钮是在200x0因此,如果我将UIView的值更改为200将硬编码,它会根据屏幕大小进行更改。我希望它是完美的,不知道任何其他方式。

UPDATE:
我使用AutoLayout所以要为此我用[self.buttonBottomView setTranslatesAutoresizingMaskIntoConstraints:YES];,当我运行应用程序的按钮被搞砸像在屏幕。我在按钮上应用了一些constraintsenter image description here将UIView从一个标签移到另一个标签

+1

你可以尝试隐藏和显示按钮的红线底部。这将很容易 –

+0

工程只是完美的,但没有动画。谢谢:d –

+0

你可以尝试UIView的过渡还添加动画 –

回答

0

改变你UIView的框架。

view.frame = CGRectMake(0+buttonWidth*i, y, width, height); 

我是指数是0 趋势,1 被球迷和2 您的规则而成。

此外,当您更改视图的框架时,它一次只显示在一个按钮上。

2

您可以使用NSLayoutConstraint,当您点击下一个按钮时更改它的LeadingConstaint

代码:

- (void)changeSelectedByTapView:(UIView *)tapView { 
    _currentSelectedView = tapView; 
    self.lineImageViewLeadingConstaint.constant = tapView.frameX; 
    self.lineImageViewWidthConstaint.constant = tapView.width; 
    [UIView animateWithDuration:0.5f animations:^{ 
     [self.lineImageView.superview layoutIfNeeded]; 
    }]; 
} 
+0

您的限制必须错误,红线(查看)级别应该与您的按钮相同。 –

相关问题