0

コア プロットを使用してグラフを作成しました。グラフは画面上に完全に表示されます。私はそれをタップするとフルスクリーンボタンを持っています.popOverはグラフをより大きなフレームに表示します...問題は、グラフのサイズを変更してもサイズが変更されないことがあることです..

ポップオーバーを閉じると、画面に大きな文字が表示されます。これは常に発生するわけではありません。

私の.hファイルで

     CPGraphHostingView *scatterPlotView;
 CPXYGraph *graph, *barChart;

私の.mファイルで

チャートを作成し、全画面ボタンをクリックします。

-(void)fullviewpressed:(id)sender
{


UIViewController* popoverContent = [[UIViewController alloc]
                                    init];
UIView* popoverView = [[UIView alloc]
                       initWithFrame:CGRectMake(0, 212, 1024, 480)];

if(!UIInterfaceOrientationIsLandscape(self.interfaceOrientation))
    popoverView.frame = CGRectMake(0, 212, 768, 700);


popoverView.backgroundColor = [UIColor blackColor];
popoverContent.view = popoverView;


//resize the popover view shown
//in the current view to the view's size
popoverContent.contentSizeForViewInPopover = CGSizeMake(980, 460);

if(!UIInterfaceOrientationIsLandscape(self.interfaceOrientation))

    popoverContent.contentSizeForViewInPopover = CGSizeMake(768-40, 660);

//create a popover controller
UIPopoverController * popoverController21 = [[UIPopoverController alloc]initWithContentViewController:popoverContent];

self.popoverController = popoverController21;
[popoverController21 release];
self.popoverController.delegate = self;

CGRect btnRct = fullViewBtn.frame;
btnRct.origin.y+=20;

//present the popover view non-modal with a
//refrence to the button pressed within the current view

[self.popoverController presentPopoverFromRect:btnRct
                                        inView:self.view
                      permittedArrowDirections: UIPopoverArrowDirectionUp
                                      animated:YES];
if(UIInterfaceOrientationIsLandscape(self.interfaceOrientation))
    scatterPlotView.frame = CGRectMake(5, 10, 980, 460);
else
    scatterPlotView.frame  = CGRectMake(5, 10, 768-40, 660);
[popoverView addSubview:scatterPlotView];
    [touchView removeFromSuperview];
    touchView.frame =scatterPlotView.frame;
    [popoverView addSubview:touchView];
//release the popover content
   [popoverView release];
   [popoverContent release];
  }

 }

ここで touchView は、ユーザーがチャートをタップしたときに注釈を追加するために使用される UIView のオブジェクトです。

要するに、私のフレームを変更しているだけですCPGraphHostingView。しかし、なぜサイズが変更されないことがありますか。

4

1 に答える 1

0

Core Plot のどのバージョンを使用していますか? あなたのコードの「CP」クラス接頭辞に基づいて、かなり古いと思われます。新しいバージョンに更新すると、この問題が解決する場合があります。

于 2012-04-11T00:49:36.167 に答える