簡體   English   中英

隱藏的XCode 4 UILabel似乎不起作用

[英]XCode 4 UILabel hidden doesn't seem to work

我在操作UILabel時遇到了一些顯示問題,即使我使用了

myLabel.hidden=YES; ...manipulation code... myLabel.hidden=NO;

標簽從不“隱藏”,並且顯示了操作(CATransform3DMakeRotation)(您可以看到標簽翻轉)。

在XCode中,我在“ myLabel.hidden = YES;”處設置了一個斷點。 行,但是當我逐步執行代碼時,它不會隱藏。

我必須缺少一些東西才能實現“隱藏”方法,對嗎? 某種刷新或更新標簽? 謝謝...

這是代碼。 從多個地方調用“ SetStartPosition”,而不僅僅是“ doubleTap”。

-(void)doubleTap{
    //stop the timer
    [myMover invalidate]; //the timer simply moves the label position
    myMover = nil;
    msgLabel.hidden=YES;
    isMirrored=!isMirrored;
    [self setStartPosition]; //flips the label
    msgLabel.hidden=NO;
    //restart the timer
    [self runMover];
}

- (void)setStartPosition{
    if(isMirrored){
        startPosition=(msgLabel.frame.size.width/2) * -1;
        msgLabel.layer.transform = CATransform3DMakeRotation(M_PI, 0.0f, 1.0f, 0.0f); //M_PI rotates 180 degrees
    }else{
        startPosition=(screenHeight)+(msgLabel.frame.size.width/2);
        msgLabel.layer.transform = CATransform3DMakeRotation(0.0, 0.0f, 1.0f, 0.0f); //0.0 rotate to normal
    }
    newX=startPosition;
    newY=screenWidth/2;
    newFrame = msgLabel.frame;
    newFrame.size.height = screenWidth;
    newFrame.origin.x =newX;
    newFrame.origin.y=newY;
    msgLabel.frame = newFrame;
}

在方法執行期間不執行任何繪制,所有操作均在下一個繪制周期完成。 如果上面的代碼全部以相同的方法執行,則標簽的最終狀態將可見,因為在完成任何繪制之前,先將其隱藏然后重新顯示。

如果您將問題擴展為包括更多上下文,則提供解決方案將更加容易。

看起來好像正在獲取不需要的動畫,因為您正在修改CALayer的可動畫設置的屬性,從而為您提供了隱式動畫。 請參見此處以獲取有關如何替代隱式動畫的時間的指導-請參見“臨時禁用圖層操作”

另一種選擇是您無意中制作了動畫,因為timer方法已將待處理的更改排隊,並且您的轉換是同時完成的,因此它是在動畫中完成的。 更改變換之前,應從標簽中刪除所有動畫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM