0
배열에서 데이터를로드하고 올바르게 표시하는 xib로 사용자 지정 선택기보기를 만들었습니다. 이제 내 문제는이 피커 뷰가 스크롤되지 않는다는 것입니다. 사실이 선택기보기는 다른보기에로드됩니다. 클릭 뷰를 클릭하면 클릭이 기본 뷰에로드 된 것으로 표시됩니다. 다음은 코드입니다. 아무도이 문제를 어떻게 해결할 수 있는지 알려주십시오. 감사합니다사용자 지정 pickerview가 스크롤되지 않습니다.
#import <UIKit/UIKit.h>
@class PickerView;
@protocol PickerViewDelegate <NSObject>
-(void) didSelectValueAtIndex;
@end
@interface PickerView : UIView <UIPickerViewDataSource, UIPickerViewDelegate>
@property (strong, nonatomic) IBOutlet UIPickerView *pickerView;
@property (nonatomic,weak) id<PickerViewDelegate> PickerViewDelegate;
-(id) showPickerView : (UIButton *) senderButton dataArray: (NSArray *) dataArray viewframe: (CGRect) viewFrame;
-(void) hidePickerView : (UIButton *) senderButton;
@end
#import "PickerView.h"
@interface PickerView()
@property (nonatomic,retain) NSArray * pickerData;
@property (nonatomic,retain) UIButton *button;
@end
@implementation PickerView
@synthesize pickerView;
@synthesize PickerViewDelegate;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
-(id) showPickerView : (UIButton *) senderButton dataArray: (NSArray *) dataArray viewframe:(CGRect)viewFrame{
self.button = senderButton;
self.pickerView = (UIPickerView *)[super init];
if (self) {
//inorder to load xib
NSArray *theView = [[NSBundle mainBundle] loadNibNamed:@"PickerView" owner:self options:nil];
UIView *pickerviewLoadedFromXib = [theView objectAtIndex:0];
CGRect btn = senderButton.frame;
self.pickerData = dataArray;
pickerviewLoadedFromXib.frame = CGRectMake(btn.origin.x , btn.origin.y+ viewFrame.size.height, pickerviewLoadedFromXib.frame.size.width, pickerviewLoadedFromXib.frame.size.height);
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
pickerviewLoadedFromXib.frame = CGRectMake(btn.origin.x, btn.origin.y+btn.size.height, btn.size.width, 200);
[UIView commitAnimations];
[senderButton.superview addSubview:self];
[self addSubview:pickerviewLoadedFromXib];
}
return self;
}
-(void) hidePickerView : (UIButton *) senderButton{
NSLog(@"hide picker view");
}
-(NSInteger) numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
-(NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return self.pickerData.count;
}
-(NSString *) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return [self.pickerData objectAtIndex:row];
}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
NSLog(@"selectd value %@", [self.pickerData objectAtIndex:row]);
}
@end