UIPickerView 自定义视图奇怪的行为

Posted

技术标签:

【中文标题】UIPickerView 自定义视图奇怪的行为【英文标题】:UIPickerView custom view strange behavior 【发布时间】:2013-10-18 13:33:10 【问题描述】:

我遇到了 UIPickerView 的问题...

我创建了一个 UIPickerView,其中包含两个组件,第一个组件为两行,第二个组件为三行。 我正在尝试为每个组件中的每一行创建一个自定义视图。好的,我将 UIView 子类化并添加了一个 UIImageView 和一个 UILabel。

我已经使用- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view 方法来创建自定义视图,它似乎工作正常。

但是当每一行“进入”UIPickerView的中间区域时,所有的内容都消失了!

这是一张图片:

有人有想法吗?

【问题讨论】:

【参考方案1】:

我遇到了类似的问题,在***上找到了解决方法——但是我找不到链接,所以我附上了下面的代码。需要明确的是——我并没有声称这个代码是我自己的。如果有人找到原始答案,请投票支持他们的答案

// self.myImages is an array of UIImageView objects
UIView * myView = [self.myImages objectAtIndex:row];

// first convert to a UIImage
UIGraphicsBeginImageContextWithOptions(myView.bounds.size, NO, 0);

[myView.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage * image = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

// then convert back to a UIImageView and return it
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

return imageView;

【讨论】:

以上是关于UIPickerView 自定义视图奇怪的行为的主要内容,如果未能解决你的问题,请参考以下文章

UIPickerView 点击滚动和自定义行 UIViews

使用自动布局的 IB_DESIGNABLE 自定义视图的错位视图警告和奇怪行为

如何自定义选择器视图

UIPickerView 在 ActionSheet 上的奇怪行为

重新创建仅显示一行的 UIPickerView

带有自定义视图的 UIPickerView 在 iOS7 中被破坏