我尝试自下而上的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()来解决这个问题,但它并没有起作用。还有人问过这个问题,但他没有得到答案。
答案 0 :(得分:2)
您的问题很可能归结为与pickerContainer相关的约束。您是否在界面构建器中使用偏移量创建了选择器?选择时,布局可能正在重做,并将其移回默认位置。您可能最好为左侧和顶部位置添加约束,然后为约束设置动画。这将确保其停留在约束定义它的位置。您可以通过CTRL从约束拖动到.h文件中为约束创建IBOutlet。然后为每个约束的常量值设置动画。
答案 1 :(得分:0)
我检查了实用程序窗口中的“剪辑到边界”选项 - 属性,这使选择器免于消失