Pet*_*rbo 2 cocoa-touch objective-c uipickerview ios
我知道我可以UIPickerView使用委托方法设置组件的宽度,– pickerView:widthForComponent:但是说我是否有2个组件,我只想更改第一个组件的宽度,并将第二个组件的宽度保留为默认值(iOS SDK会想出的东西) .我怎么做到这一点?
小智 8
PickerView根据拾取器中的组件数量来划分组件.所以组件没有默认值.但你仍然可以试试这个.
为此,尝试按百分比样式设置组件宽度.
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 2 ;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
if (component == 0)
{
return 10 ;
}
else
{
return 10 ;
}
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (component == 0)
{
return @"Apple" ;
}
else
{
return @"iPhone" ;
}
}
-(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component
{
if (component == 0)
{
return (self.view.frame.size.width * 55 ) / 100 ;
}
else
{
return (self.view.frame.size.width * 30 ) / 100 ;
}
}
Run Code Online (Sandbox Code Playgroud)
这是screenShot:

除非您使用if语句并手动设置默认值(在找出它之后),如下所示:
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component {
if (component == 0)
return customWidth;
return defaultValue;
}
Run Code Online (Sandbox Code Playgroud)
我不确定您是否可以仅为某些组件设置值,但让其他组件默认接管.
| 归档时间: |
|
| 查看次数: |
8619 次 |
| 最近记录: |