los*_*sit 18 iphone uipickerview
我想更改UIPickerView的边框颜色.我没有看到UIPickerView的色调属性.有什么办法可以做到吗?还是一个解决方法?
谢谢.
Luk*_*kas 27
您还可以屏蔽组件.有点fiddeling你可以获得组件的大小,并使用以下代码将其删除:
CALayer* mask = [[CALayer alloc] init];
[mask setBackgroundColor: [UIColor blackColor].CGColor];
[mask setFrame: CGRectMake(10.0f, 10.0f, 260.0f, 196.0f)];
[mask setCornerRadius: 5.0f];
[picker.layer setMask: mask];
[mask release];
Run Code Online (Sandbox Code Playgroud)
别忘了
#import <QuartzCore/QuartzCore.h>
Run Code Online (Sandbox Code Playgroud)
Ed *_*rty 18
如果你只想要一个解决方法,在模拟器中拍摄一个屏幕截图,在photoshop中打开它,将其裁剪到UIPickerView区域,使中心透明,应用你想要的任何色调,将该图像添加到项目中,并将其添加为UIPmageView顶部的UIImageView.
ada*_*dam 14
我的UIPickerView有3个组件.没有选择指标.
这给了它11个子视图. [[picker subviews] count]
隐藏第一个和最后一个子视图完全删除了背景.
[(UIView*)[[picker subviews] objectAtIndex:0] setHidden:YES];
[(UIView*)[[picker subviews] objectAtIndex:10] setHidden:YES];
Run Code Online (Sandbox Code Playgroud)
隐藏每三个其他子视图(索引1,4和7)会隐藏组件上的不透明背景.给我一个很好的效果,我可以按照我的意愿去皮肤.
希望有人帮助:)
选择器在完全加载之前不会有子视图.如果您尝试这样做:
[(UIView*)[[picker subviews] objectAtIndex:0] setHidden:YES];
[(UIView*)[[picker subviews] objectAtIndex:10] setHidden:YES];
Run Code Online (Sandbox Code Playgroud)
在viewDidLoad或viewWillAppear中它将无法正常工作.但是,我将我的一个UIPickerView协议方法移动了,并删除了背景框架.
- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
if (self.pickerBackgroundNotHidden)
{
self.pickerBackgroundNotHidden = false;
[(UIView*)[[tempPicker subviews] objectAtIndex:0] setHidden:YES];
[(UIView*)[[tempPicker subviews] objectAtIndex:7] setHidden:YES];
[(UIView*)[[tempPicker subviews] objectAtIndex:8] setHidden:YES];
}
return [arrayColors objectAtIndex:row];
}
Run Code Online (Sandbox Code Playgroud)
您可以将选择器子类化为更有效地执行此操作,但我更愿意避免子类化.
哦,这也许是显而易见的,但是如果您的选择器中没有任何项目,则上面的代码不会删除子视图.
归档时间: |
|
查看次数: |
38223 次 |
最近记录: |