2012-02-28 2 views
0

私のアプリにWePopovercontrollerを実装する過程にあり、uisliderを実装する方法について質問があります。 UIViewにスライダーを表示し、スライダーを移動したときにそのアクションを取得できますが、そのビューのラベルの値を設定する方法がわかりません。ここでは、コードWePopoverControlerのUISliderコントロールでラベルの値を変更する

-(void)popoverSliderMoved:(UISlider *) sender{ 
    NSLog(@"slider %f",sender.value); 
} 

-(IBAction)showSettingsMenu:(UIButton *)sender{ 

if(!self.popoverSettingsController) { 
    // Create a label and button for the popover 
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 40)]; 
    [label setText:@"Bookmark it!"]; 
    [label setBackgroundColor:[UIColor clearColor]]; 
    [label setTextColor:[UIColor whiteColor]]; 
    [label setTextAlignment:UITextAlignmentCenter]; 
    UISlider *slider = [[UISlider alloc]initWithFrame:CGRectMake(0, 45, 100, 40)]; 
    [slider addTarget:self action:@selector(popoverSliderMoved:) forControlEvents:UIControlEventValueChanged]; 
    UIFont *font = [UIFont boldSystemFontOfSize:20]; 
    [label setFont:font]; 
    CGSize size = [label.text sizeWithFont:font]; 
    CGRect frame = CGRectMake(0, 0, size.width + 10, size.height + 10); // add a bit of a border around the text 
    label.frame = frame; 

    UIButton *button = [[UIButton alloc] initWithFrame:label.frame]; 
    [button addSubview:label]; 
    [button addTarget:self action:@selector(popoverButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; 

    UIViewController *viewCon = [[UIViewController alloc] init]; 
    [viewCon.view addSubview:slider]; 
    [viewCon.view addSubview:button]; 
    CGRect popOverFrm = CGRectMake(0, 0, frame.size.width + slider.frame.size.width, frame.size.height + slider.frame.size.height); 
    viewCon.contentSizeForViewInPopover = popOverFrm.size;//CGSizeMake(100, 36); 


    NSLog(@"Label Frame: %@", NSStringFromCGRect(label.frame)); 
    NSLog(@"Popover size: %@", NSStringFromCGSize(viewCon.contentSizeForViewInPopover)); 
    NSLog(@"ViewCon: %@", NSStringFromCGRect(viewCon.view.frame)); 

    self.popoverSettingsController = [[WEPopoverController alloc] initWithContentViewController:viewCon]; 


    //[self.popoverSettingsController setDelegate:self]; 
} 

if([self.popoverSettingsController isPopoverVisible]) { 
    [self.popoverSettingsController dismissPopoverAnimated:YES]; 
    // [navPopover setDelegate:nil]; 
    self.popoverSettingsController = nil; 
} else { 

    [self.popoverSettingsController presentPopoverFromRect:CGRectMake(sender.frame.size.width, 0, 200, 57) 
           inView:self.navigationController.view 
       permittedArrowDirections:UIPopoverArrowDirectionUp | UIPopoverArrowDirectionDown 
           animated:YES]; 
} 
} 

の一部は、私はこのケースやラベルを設定するには、このViewControllerをのプロパティにデリゲートを使用する必要がありますされています。

ありがとうございました!

答えて

-1

はいプロパティを使用すると、私がやることになります。

+0

返信いただきありがとうございます。私はプロパティで動作するようにしましたが、プロパティを使用してクリーンなコードでuiviewを作成するかどうかはわかりません。 @ElDeveloperは私の投稿を修正してくれてありがとう。コピー貼り付けがコードウィンドウにすべてのコードを配置しなかった理由を理解できませんでした。私は機能を分けなければならなかったと思います – Yan

+0

コメントにする必要があります –

+0

私は同意します。しかし私はまだその特権を持っていません。 –

関連する問題