将UIView从一个选项卡移动到另一个选项卡

时间:2015-07-22 07:09:16

标签: ios objective-c uiview uibutton

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

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

更新:
我使用AutoLayout所以出于这个目的,我使用了[self.buttonBottomView setTranslatesAutoresizingMaskIntoConstraints:YES];,当我运行应用程序时,按钮被搞砸了,就像截图一样。我在按钮上应用了一些constraintsenter image description here

2 个答案:

答案 0 :(得分: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];
    }];
}

答案 1 :(得分:0)

更改你的UIView框架。

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

我是指数,趋势为0,粉丝为为1,您的规则为为2。

同样,当您更改视图的边框时,它一次只显示在一个按钮上。