iOS

当前位置:首页 > iOS

ios – Swift如何隐藏元素和他的空间 - iOS

我希望标题清楚.我想隐藏一个元素(在我的情况下是数据选择器),我也想隐藏他的空间. 所以我用动画尝试了这个: @IBAction func showQnt(sender: AnyObject) ...
我希望标题清楚.我想隐藏一个元素(在我的情况下是数据选择器),我也想隐藏他的空间.
所以我用动画尝试了这个:
@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

但不会工作.

提前致谢.

解决方法

在Objective-C / Swift中使用 “hidden” property视图实际上不会“崩溃”视图所占用的空间(与 “View.GONE” in Android相反).

相反,您应该使用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如何隐藏元素和他的空间所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。

相关内容

文章评论

表情

共 0 条评论,查看全部
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

评论排行榜

热门标签