在DidSelectRow之后PickerView消失

时间:2015-04-13 11:35:24

标签: ios swift

我尝试自下而上的UIPickerView组件,首先我创建了一个容器视图,而不是我的实际视图,然后我在容器视图中添加了一个选择器视图。我将此视图的y位置设置为1690.如果按下按钮,它会向上移动,就像那样动画。

func createPicker(sender: UIButton)
{
    if(isPickerViewOpened == false){
    pickerView.reloadAllComponents()
    shadowImageView.alpha = 0.6
    UIView.animateWithDuration(0.5, animations: { () -> Void in
        self.pickerContainer.center = CGPointMake(self.pickerContainer.center.x, self.pickerContainer.center.y - 1000)
    })
    isPickerViewOpened = true
    }

}

但是当DidSelectRow功能起作用时,该视图会回到原来的位置。

我的DidSelectRow功能:

func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int)
{


    urunCesitButton.setTitle("\(urunCesitAd[row])", forState: .Normal)
    urunKodu = urunCesitKod[row]
    urunAd = urunCesitAd[row]
    urunFiyat = urunCesitFiyat[row]
    urunAdLabel.text = urunAd
    urunFiyatLabel.text = "\(urunFiyat) TL"
    shadowImageView.alpha = 0
    scrollerView.userInteractionEnabled = true
    decreaseButtonOutlet.userInteractionEnabled = true
    urunAdet.userInteractionEnabled = true
    increaseButtonOutlet.userInteractionEnabled = true

}

我尝试使用endEditing或resignFirstResponder()来解决这个问题,但它并没有起作用。还有人问过这个问题,但他没有得到答案。

2 个答案:

答案 0 :(得分:2)

您的问题很可能归结为与pickerContainer相关的约束。您是否在界面构建器中使用偏移量创建了选择器?选择时,布局可能正在重做,并将其移回默认位置。您可能最好为左侧和顶部位置添加约束,然后为约束设置动画。这将确保其停留在约束定义它的位置。您可以通过CTRL从约束拖动到.h文件中为约束创建IBOutlet。然后为每个约束的常量值设置动画。

请参阅How do I animate constraint changes?

答案 1 :(得分:0)

我检查了实用程序窗口中的“剪辑到边界”选项 - 属性,这使选择器免于消失