将 UIView 从一个选项卡移动到另一个选项卡
Posted
技术标签:
【中文标题】将 UIView 从一个选项卡移动到另一个选项卡【英文标题】:Moving UIView from One Tab to another 【发布时间】:2015-07-22 07:09:15 【问题描述】:我正在制作这种类型的屏幕。
我已经使用了 3 个 UIButton
并以编程方式给了它们边框。小红线是UIView
。我为UIView
等宽 提供了一个约束,作为Trending Button。
现在我的问题是,当用户点击下一个按钮时,这个 UIView
应该移动到下一个按钮。 视图控制器是 600x600
,下一个按钮是 200x0
,所以如果我更改 @987654329 的值@ 到 200 将被硬编码,它会根据屏幕大小而改变。我希望它是完美的并且不知道任何其他方式。更新:我正在使用AutoLayout
,因此为此我使用了[self.buttonBottomView setTranslatesAutoresizingMaskIntoConstraints:YES];
和当我运行该应用程序时,按钮就像屏幕截图中一样乱七八糟。我在按钮上应用了一些constraints
。
【问题讨论】:
您可以尝试隐藏和显示按钮底部的红线。这很容易 工作完美但没有动画。谢谢:D 你也可以试试uiview transition添加动画 [UIView transitionWithView:self.view duration:1.5 options:UIViewAnimationOptionTransitionFlipFromBottom //改成你喜欢的任何动画动画:^ [self.view addSubview:myImageView1]; [self.view addSubview:myImageView2]; completion:^(BOOL finished) if (finished) // 成功 NSLog(@"Animations completed."); // 做点什么... ]; 【参考方案1】:您可以使用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];
];
【讨论】:
您的约束一定是错误的,红线(视图)级别应该与您的按钮相同。【参考方案2】:改变你的 UIView 的框架。
view.frame = CGRectMake(0+buttonWidth*i, y, width, height);
i 是指数,0 代表Trending,1 代表粉丝制作,2 代表你的规则。
此外,当您更改视图的框架时,它一次只显示在一个按钮上。
【讨论】:
以上是关于将 UIView 从一个选项卡移动到另一个选项卡的主要内容,如果未能解决你的问题,请参考以下文章
将应用程序 URL 从一个选项卡复制到另一个选项卡导致 404 错误