作为弹出窗口显示图像

问题描述:

我想要在UIPopoverArrowDirectionLeft上显示图像。如何在按钮单击时将图像显示为弹出窗口?作为弹出窗口显示图像

我假设你的意思是一个popover屏幕会打开一个图像。 这是如何直接做到这一点,只是以编程方式添加一个图像到酥料饼的观点,或者更好的是,添加图像在Interface Builder来MyPopOverView XIB

- (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]; 
    } 
} 
+0

[popoverController addsubview:icon];我不能将子视图添加到弹出控制器 – Ankita 2013-02-13 04:39:07

+0

尝试通过接口生成器添加它 – chewy 2013-02-13 09:00:02

使用自定义popOverViewController像WEPopOverController。它包含了一些财产等

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 ur Image 
    ret.leftArrowImageName = @"popoverArrowLeftSimple.png"; 
    ret.rightArrowImageName = @"popoverArrowRightSimple.png"; 
    return ret; 
} 

另一种方式改变了流行箭头图像履行此方案是让一个自定义的UIView根据您的需求,并在它里面设置图像您想显示为popover。并让它出现在你想要展示你的popover时。