0

に画像を表示したいUIPopoverArrowDirectionLeft。ボタンのクリック時に画像をポップオーバーとして表示するにはどうすればよいですか?

4

3 に答える 3

1

ポップオーバー画面が開いて画像が表示されるという意味だと思います。これがその方法です。プログラムでポップオーバービューに画像を追加するか、さらに良いことに、インターフェイスビルダーで直接画像をMyPopOverViewXIBに追加します。

- (IBAction)showPopover:(id)sender
{
    if(![popoverController isPopoverVisible]) {
    myPopOver = [[MyPopOverView alloc] initWithNibName:@"MyPopOverView" bundle:nil];
    popoverController = [[UIPopoverController alloc] initWithContentViewController:myPopOver] ;

     // THE IMAGE
    UIImageView *icon = [[UIImageView alloc] initWithImage:[UIImage   imageNamed:@"popoverImage.png"]];

    [popoverController addsubview:icon];

    [popoverController setPopoverContentSize:CGSizeMake(350.0f, 500.0f)];
    [popoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

    } else {
        [popoverController dismissPopoverAnimated:YES];
    }
}
于 2013-02-12T10:00:22.417 に答える
0

このシナリオを満たす別の方法は、要求に応じてカスタム uiview を作成し、ポップオーバーとして表示するイメージをその中に設定することです。ポップオーバーを表示したいときに表示させます。

于 2014-03-12T07:23:35.877 に答える
0

WEPopOverController のようなカスタム popOverViewController を使用します。ポップオーバー矢印の画像などを変更するプロパティが含まれています。

http://www.cocoacontrols.com/controls/wepopover

- (WEPopoverContainerViewProperties *)defaultContainerViewProperties {
    WEPopoverContainerViewProperties *ret = [[WEPopoverContainerViewProperties new] autorelease];

    CGSize imageSize = CGSizeMake(30.0f, 30.0f);
    NSString *bgImageName = @"tri123.png";//@"round-rect-box.png";
    CGFloat bgMargin = 2.0;
    CGFloat contentMargin = 2.0;

    ret.leftBgMargin = bgMargin;
    ret.rightBgMargin = bgMargin;
    ret.topBgMargin = bgMargin;
    ret.bottomBgMargin = bgMargin;
    ret.leftBgCapSize = imageSize.width/2;
    ret.topBgCapSize = imageSize.height/2;
    ret.bgImageName = bgImageName;
    ret.leftContentMargin = contentMargin;
    ret.rightContentMargin = contentMargin;
    ret.topContentMargin = contentMargin;
    ret.bottomContentMargin = contentMargin;
    ret.arrowMargin = 1.0;
    ret.upArrowImageName = @"popoverArrowUpSimple.png";
    ret.downArrowImageName = @"tri2.png";   // Customize your Image
    ret.leftArrowImageName = @"popoverArrowLeftSimple.png";
    ret.rightArrowImageName = @"popoverArrowRightSimple.png";
    return ret;
}
于 2013-02-12T10:57:00.343 に答える