0

カメラ用のカスタム オーバーレイがあります。そのオーバーレイにはUISliderがあります。

@implementation LWOverlayView

- (id)initWithFrame:(CGRect)frame imagePath:(NSString*) imagepath{
    if ((self = [super initWithFrame:frame])) {
        // Clear the background of the overlay:
        self.opaque = NO;
        self.backgroundColor = [UIColor clearColor];


        UIImageView *overlayGraphicView = [[UIImageView alloc] init];
        overlayGraphicView.contentMode = UIViewContentModeScaleAspectFill;
        [overlayGraphicView setImageWithURL:[NSURL URLWithString:imagepath]
                       placeholderImage:[UIImage imageNamed:@"placeholder.png"]];


        overlayGraphicView.frame = CGRectMake(80, 140, 160, 120);
        [self addSubview:overlayGraphicView];

        UIToolbar *toolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 436, 320, 44)];
        [toolbar setBarStyle:UIBarStyleBlackOpaque];

        UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismiss)];

        CGRect frame = CGRectMake(0.0, 0.0, 200.0, 10.0);
        UISlider *slider = [[UISlider alloc] initWithFrame:frame];
        [slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
        [slider setBackgroundColor:[UIColor clearColor]];
        slider.minimumValue = 0.0;
        slider.maximumValue = 50.0;
        slider.continuous = YES;
        slider.value = 25.0;


        [toolbar setItems:[NSArray arrayWithObjects:doneButton, slider, nil]];

        [self addSubview:toolbar];

    }
    return self;
}

アプリのクラッシュ:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UISlider view]: unrecognized selector sent to instance 0x20854fe0'

ヒントはありますか?

4

3 に答える 3

2

スライダーをツールバーに追加することはできません:

[toolbar setItems:[NSArray arrayWithObjects:doneButton, slider, nil]];

それがコードを壊しているものです。追加できるのは UIBarButtonItem のみです

于 2013-05-17T14:31:43.797 に答える
0

ツールバーには、UIBarButtonItem のアイテムを含めることができます。UISlider は UIBarButtonItem ではありません。それはクラッシュと関係があるかもしれません。スライダーを取り外してみて、動作を確認してください。

于 2013-05-17T14:32:47.807 に答える