@IBAction func showQnt(sender: AnyObject) { if (self.pickerQnt.alpha == 0.0){ UIView.animateWithDuration(0.2,delay: 0.0,options: UIViewAnimationOptions.ShowHideTransitionViews,animations: { self.pickerQnt.alpha = 1.0 },completion: { (finished: Bool) -> Void in //var constH = NSLayoutConstraint(item: self.pickerQnt,attribute: NSLayoutAttribute.Height,relatedBy: NSLayoutRelation.Equal,toItem: nil,attribute: NSLayoutAttribute.NotAnAttribute,multiplier: 1,constant: 162) //self.pickerQnt.addConstraint(constH) }) } else { UIView.animateWithDuration(0.2,animations: { self.pickerQnt.alpha = 0.0 },completion: { (finished: Bool) -> Void in // CHECK: ?!? constrain to set view height to 0 run time //var constH = NSLayoutConstraint(item: self.pickerQnt,constant: 0) //self.pickerQnt.addConstraint(constH) }) }}
我也尝试过类似的东西:
self.pickerQnt.hidden = true
但不会工作.
提前致谢.
解决方法
相反,您应该使用Autolayout和高度约束.
在Xib / Storyboard文件中创建高度约束.给它希望的高度.为该约束创建一个IBOutlet(从Constraints列表中的Constraint拖动到源文件),然后你可以编写这个方法
迅捷解决方案
var pickerHeightVisible: CGFloat!......func togglePickerViewVisibility(animated: Bool = true) { if pickerHeightConstraint.constant != 0 { pickerHeightVisible = pickerHeightConstraint.constant pickerHeightConstraint.constant = 0 } else { pickerHeightConstraint.constant = pickerHeightVisible } if animated { UIView.animateWithDuration(0.2,animations: { () -> Void in self.view.layoutIfNeeded() },completion: nil) } else { view.layoutIfNeeded() }}
Objective-C解决方案:
@property (nonatomic,strong) CGFloat pickerHeightVisible;......- (void)togglePickerViewVisibility:(BOOL)animated { if(pickerHeightConstraint.constant != 0) { pickerHeightVisible = pickerHeightConstraint.constant; pickerHeightConstraint.constant = 0; } else { pickerHeightConstraint.constant = pickerHeightVisible; } if(animated) { [UIView animateWithDuration:0.2 animations:(void (^)(void))animations:^(void) { [self.view layoutIfNeeded]; }]; } else { [self.view layoutIfNeeded]; }}
免责声明:我没有测试或编译上面的代码,但它会让你知道如何实现它.
重要信息:上面的代码假定您在故事板/笔尖中为选取器视图的高度约束赋予大于0的值.
以上是来客网为你收集整理的ios – Swift如何隐藏元素和他的空间全部内容,希望文章能够帮你解决ios – Swift如何隐藏元素和他的空间所遇到的程序开发问题。
如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。