Domanda

Sto sviluppando un'applicazione su iPad per leggere e annotare applicazione pdf's.My sta lavorando bene in modalità verticale / orizzontale, ma quando ho ruota il dispositivo o simulatore sua avermi dato weired errore wait_fences: Impossibile ricevere risposta: 10.004.003 ogni volta che ruota sia da orizzontale a verticale o da verticale a orizzontale.

a volte la mia app si blocca e, talvolta, il suo non è rotante correttamente a causa di questo errore. I googled su wait_fences ma i didnt get nulla.

Qualcuno può please help me su questo. Grazie in anticipo.

È stato utile?

Soluzione

Qui si sta facendo le seguenti cose nel metodo willAnimateRotationToInterfaceOrientation.

if([objGoToPagePopOverController isPopoverVisible])
{
    [objGoToPagePopOverController dismissPopoverAnimated:YES];
}

Così, qui invece di chiamare direttamente questo metodo "dismissPopoverAnimated", fanno un metodo personalizzato "Remove_Popover" e chiamata che timer come nel seguente modo:

[NSTimer scheduledTimerWithTimeInterval:0.001 target:self selector:@selector(Remove_Popover) userInfo:nil repeats:NO];

chiamare questo metodo in NSTimer quando si mette il codice dismissPopoverAnimated all'interno del metodo willAnimateRotationToInterfaceOrientation. E solo fare il proprio metodo personalizzato come segue:

- (void)Remove_Popover
{
    if([objGoToPagePopOverController isPopoverVisible])
    {
        [objGoToPagePopOverController dismissPopoverAnimated:YES];
    }
}

Fammi sapere se è possibile risolvere il problema.

Altri suggerimenti

withih willRotateToInterfaceOrientation che io chiamo il mio mythod dove sto impostando i rettangoli orizzontale e verticale per tutti i miei elementi dell'interfaccia utente

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    delegate.currentOrientation = toInterfaceOrientation;
    [self landscapePortraitOrientation];
}



- (void) landscapePortraitOrientation
{
    CGRect scriptPageViewRect = delegate.objNewWindow.frame;
    scriptPageViewRect.origin.x = 0.0;
    scriptPageViewRect.origin.y = 0.0;

    if((delegate.currentOrientation == UIInterfaceOrientationLandscapeLeft )|| (delegate.currentOrientation == UIInterfaceOrientationLandscapeRight))
    {

        searchMenus.frame = CGRectMake(824, 634, 400, 55);      
        currPage.frame = CGRectMake( 0.0, 0.0, 1004.0, 768.0);          //( 0.0, 0.0, 798.0, 1024.0);  //( 138.0, -140.0, 768.0, 1004.0)
        tiledLayerSize = tiledLayerSizeLandscape;

        // Customising go to page slider
        CGAffineTransform trans = CGAffineTransformMakeRotation (M_PI * 0.5);
        goToPageSlider.transform = trans;
        goToPageSlider.minimumValue = 1;
        goToPageSlider.maximumValue = totalNoOfScriptPages;
        goToPageSlider.frame = CGRectMake(15.0,90.0, 50.0, 550.0);


        CGRect frame4=backButtonOutlet.frame;
        frame4.origin.x=8;
        frame4.origin.y=4;
        frame4.size.width=69;
        frame4.size.height=35;
        backButtonOutlet.frame=frame4;  

        CGRect frame5=pdfPageTopBar.frame;
        frame5.origin.x = 0;
        frame5.origin.y = 0;
        frame5.size.width = 1024;
        frame5.size.height = 44;
        pdfPageTopBar.frame = frame5;       


        CGRect frame6=pdfTitleOutlet.frame;
        frame6.origin.x=319;
        pdfTitleOutlet.frame=frame6;        

        CGRect frame7=helpButtonOutlet.frame;
        frame7.origin.x=928;
        frame7.origin.y=3;
        frame7.size.width = 76;
        frame7.size.height = 36;
        helpButtonOutlet.frame=frame7;

        CGRect frame9=modeSwitchBtnImage.frame;
        frame9.origin.x=818;
        modeSwitchBtnImage.frame=frame9;


        CGRect frame10=pdfPageBottomBar.frame;
        frame10.origin.x = -3;
        frame10.origin.y = 675;
        frame10.size.width = 1028;
        frame10.size.height = 74;
        pdfPageBottomBar.frame=frame10;


        CGRect frame13=gotoPageButtonOutlet.frame;
        frame13.origin.x = 504;
        frame13.origin.y = 675;
        gotoPageButtonOutlet.frame = frame13;

        CGRect frame17=searchButtonOutlet.frame;
        frame17.origin.x=314;
        frame17.origin.y=675;
        searchButtonOutlet.frame=frame17;

        CGRect frame18=viewAllCommentsButtonOutlet.frame;
        frame18.origin.x=696;
        frame18.origin.y=675;
        viewAllCommentsButtonOutlet.frame=frame18;

        CGRect frame19=commentsButtonOutlet.frame;
        frame19.origin.x=125;
        frame19.origin.y=675;       
        commentsButtonOutlet.frame=frame19;     


        CGRect frame14=modeSwitchBtnOutlet.frame;
        frame14.origin.x=818;
        modeSwitchBtnOutlet.frame=frame14;

        CGRect frameDoneBtn = commentDoneButtonOutlet.frame;
        frameDoneBtn.origin.x = 835;
        commentDoneButtonOutlet.frame = frameDoneBtn;

        if([objGoToPagePopOverController isPopoverVisible])
        {
            [objGoToPagePopOverController dismissPopoverAnimated:YES];
        }

        //for comments
        if(commentsView.hidden == NO && isKeyBoardShown == YES)
        {CGRect commentsViewFrame = CGRectMake(0,200,1024,205);
            commentsView.frame = commentsViewFrame;
            CGRect pageTextCommentsFrame = pageTextComments.frame;
            pageTextCommentsFrame.origin.x = 20;
            pageTextCommentsFrame.size.width = 986;
            pageTextCommentsFrame.size.height = 120;
            pageTextComments.frame = pageTextCommentsFrame;
        }
        else if(commentsView.hidden == NO && isKeyBoardShown == NO)
        {

            CGRect commentsViewFrame = CGRectMake(0,380,1024,300);
            commentsView.frame = commentsViewFrame;

            CGRect pageTextCommentsFrame = pageTextComments.frame;
            pageTextCommentsFrame.origin.x = 20;
            pageTextCommentsFrame.size.width = 980;
            pageTextCommentsFrame.size.height = 220;
            pageTextComments.frame = pageTextCommentsFrame;

        }

        // Initialising top & bottm bar elements show rect
        topBarShowRect = pdfPageTopBar.frame;
        bottomBarShowRect = pdfPageBottomBar.frame;
        backButtonShowRect = backButtonOutlet.frame;
        topBarTitleLabelShowRect = pdfTitleOutlet.frame;
        searchButtonShowRect = searchButtonOutlet.frame;
        helpButtonShowRect = helpButtonOutlet.frame;
        gotoPageButtonShowRect = gotoPageButtonOutlet.frame;
        gotoSliderShowRect = goToPageSlider.frame;
        commentsButtonShowRect = commentsButtonOutlet.frame;
        viewAllButtonShowRect = viewAllCommentsButtonOutlet.frame;


        // Initialising top & bottom bar elements hide rect
        topBarHideRect = pdfPageTopBar.frame;
        backButtonHideRect = backButtonOutlet.frame;
        topBarTitleLabelHideRect = pdfTitleOutlet.frame;
        searchButtonHideRect = searchButtonOutlet.frame;
        bottomBarHideRect = pdfPageBottomBar.frame;
        helpButtonHideRect = helpButtonOutlet.frame;
        gotoPageButtonHideRect = gotoPageButtonOutlet.frame;
        gotoSliderHideRect = goToPageSlider.frame;
        commentsButtonHideRect = commentsButtonOutlet.frame;
        viewAllButtonHideRect = viewAllCommentsButtonOutlet.frame;      

        topBarHideRect.origin.y = topBarHideRect.origin.y - 44.0;
        backButtonHideRect.origin.y = backButtonHideRect.origin.y - 44.0;
        topBarTitleLabelHideRect.origin.y = topBarTitleLabelHideRect.origin.y - 44.0;
        searchButtonHideRect.origin.y = searchButtonHideRect.origin.y + 74.0;
        bottomBarHideRect.origin.y = bottomBarHideRect.origin.y + 74.0;
        helpButtonHideRect.origin.y = helpButtonHideRect.origin.y - 44;
        gotoPageButtonHideRect.origin.y = gotoPageButtonHideRect.origin.y + 73.0;
        gotoSliderHideRect.origin.x = gotoSliderHideRect.origin.x - 70.0;
        commentsButtonHideRect.origin.y =  commentsButtonHideRect.origin.y + 74.0;
        viewAllButtonHideRect.origin.y = viewAllButtonHideRect.origin.y + 74.0;

    }
    else if(delegate.currentOrientation == UIInterfaceOrientationPortraitUpsideDown || delegate.currentOrientation == UIInterfaceOrientationPortrait)
    {
        currPage.frame = CGRectMake(   0.0,    0.0,   768.0, 1004.0);
        tiledLayerSize = tiledLayerSizePortrait;

        searchMenus.frame = CGRectMake(568, 890, 400, 55);      

        // Customising go to page slider
        CGAffineTransform trans = CGAffineTransformMakeRotation (M_PI * 0.5);
        goToPageSlider.transform = trans;
        goToPageSlider.minimumValue = 1;
        goToPageSlider.maximumValue = totalNoOfScriptPages;
        goToPageSlider.frame = CGRectMake(15.0,90.0, 50.0, 825.0);

        CGRect frame20=backButtonOutlet.frame;
        frame20.origin.x=8;
        frame20.origin.y=4;
        frame20.size.width=69;
        frame20.size.height=35;
        backButtonOutlet.frame=frame20;

        CGRect frame4=pdfPageTopBar.frame;
        frame4.origin.x=0;
        frame4.origin.y=0;
        frame4.size.width=768;
        frame4.size.height=44;
        pdfPageTopBar.frame=frame4;

        CGRect frame5=pdfTitleOutlet.frame;
        frame5.origin.x=187;
        pdfTitleOutlet.frame=frame5;

        CGRect frame6=helpButtonOutlet.frame;
        frame6.origin.x=687;
        frame6.origin.y=3;
        frame6.size.width=76;
        frame6.size.height=36;
        helpButtonOutlet.frame=frame6;

        CGRect frame10=pdfPageBottomBar.frame;
        frame10.origin.x=-2;
        frame10.origin.y=931;
        frame10.size.width=770;
        frame10.size.height=74;
        pdfPageBottomBar.frame=frame10;

        CGRect frame11=searchButtonOutlet.frame;
        frame11.origin.x=195;
        frame11.origin.y=931;
        searchButtonOutlet.frame=frame11;

        CGRect frame12=gotoPageButtonOutlet.frame;
        frame12.origin.x=387;
        frame12.origin.y=931;
        frame12.size.width=192;
        frame12.size.height=74;
        gotoPageButtonOutlet.frame=frame12;

        CGRect frame13=backButtonOutlet.frame;
        frame13.origin.x=9;
        frame13.origin.y=4;
        frame13.size.width=69;
        frame13.size.height=35;
        backButtonOutlet.frame=frame13;

        CGRect frame17=commentsButtonOutlet.frame;
        frame17.origin.x=1;
        frame17.origin.y=931;
        commentsButtonOutlet.frame=frame17;

        CGRect frame18=viewAllCommentsButtonOutlet.frame;
        frame18.origin.x=580;
        frame18.origin.y=931;
        viewAllCommentsButtonOutlet.frame=frame18;  

        CGRect frame14=modeSwitchBtnImage.frame;
        frame14.origin.x=602;
        modeSwitchBtnImage.frame=frame14;

        CGRect frame16=modeSwitchBtnOutlet.frame;
        frame16.origin.x=602;
        modeSwitchBtnOutlet.frame=frame16;

        CGRect frameDoneBtn = commentDoneButtonOutlet.frame;
        frameDoneBtn.origin.x = 599;
        commentDoneButtonOutlet.frame = frameDoneBtn;

        //to remove thr popover for goto page
        if([objGoToPagePopOverController isPopoverVisible])
        {
            [objGoToPagePopOverController dismissPopoverAnimated:YES];
        }

        //for comments
        if(commentsView.hidden == NO && isKeyBoardShown == YES)
        {
            commentsView.frame = CGRectMake(0,535,768,205);
            CGRect pageTextCommentsFrame = pageTextComments.frame;
            pageTextCommentsFrame.size.height = 135;
            pageTextCommentsFrame.size.width = 728;
            pageTextComments.frame = pageTextCommentsFrame;

        }
        else if(commentsView.hidden == NO && isKeyBoardShown == NO)
        {
            commentsView.frame = CGRectMake(0, 568, 768, 362);

            CGRect pageTextCommentsFrame = pageTextComments.frame;
            pageTextCommentsFrame.size.height = 290;
            pageTextCommentsFrame.size.width = 725;
            pageTextComments.frame = pageTextCommentsFrame;

        }


        // Initialising top & bottm bar elements show rect
        topBarShowRect = pdfPageTopBar.frame;
        bottomBarShowRect = pdfPageBottomBar.frame;
        backButtonShowRect = backButtonOutlet.frame;
        topBarTitleLabelShowRect = pdfTitleOutlet.frame;
        searchButtonShowRect = searchButtonOutlet.frame;
        helpButtonShowRect = helpButtonOutlet.frame;
        gotoPageButtonShowRect = gotoPageButtonOutlet.frame;
        gotoSliderShowRect = goToPageSlider.frame;
        commentsButtonShowRect = commentsButtonOutlet.frame;
        viewAllButtonShowRect = viewAllCommentsButtonOutlet.frame;


        // Initialising top & bottom bar elements hide rect
        topBarHideRect = pdfPageTopBar.frame;
        backButtonHideRect = backButtonOutlet.frame;
        topBarTitleLabelHideRect = pdfTitleOutlet.frame;
        searchButtonHideRect = searchButtonOutlet.frame;
        bottomBarHideRect = pdfPageBottomBar.frame;
        helpButtonHideRect = helpButtonOutlet.frame;
        gotoPageButtonHideRect = gotoPageButtonOutlet.frame;
        gotoSliderHideRect = goToPageSlider.frame;
        commentsButtonHideRect = commentsButtonOutlet.frame;
        viewAllButtonHideRect = viewAllCommentsButtonOutlet.frame;      

        topBarHideRect.origin.y = topBarHideRect.origin.y - 44.0;
        backButtonHideRect.origin.y = backButtonHideRect.origin.y - 44.0;
        topBarTitleLabelHideRect.origin.y = topBarTitleLabelHideRect.origin.y - 44.0;
        searchButtonHideRect.origin.y = searchButtonHideRect.origin.y + 74.0;
        bottomBarHideRect.origin.y = bottomBarHideRect.origin.y + 74.0;
        helpButtonHideRect.origin.y = helpButtonHideRect.origin.y - 44;
        gotoPageButtonHideRect.origin.y = gotoPageButtonHideRect.origin.y + 74.0;
        gotoSliderHideRect.origin.x = gotoSliderHideRect.origin.x - 70.0;
        commentsButtonHideRect.origin.y =  commentsButtonHideRect.origin.y + 74.0;
        viewAllButtonHideRect.origin.y = viewAllButtonHideRect.origin.y + 74.0;

    }

}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top