簡體   English   中英

重疊文本問題:iOS7

[英]Issue with overlapping text: iOS7

我通常發布源代碼和UI的例子,但我認為它與iOS7更改更相關,我不能看到它是一個代碼錯誤(還)。 我必須發布這么多的代碼和用戶界面才能適得其反。 所以這是我最好的非視覺描述:

自從將項目升級到iOS7后,我發現如果我在ViewDidAppearViewWillAppear調用更改UILabel或調用UIButton setText ,它會將新文本放在舊文本的頂部。

自從開發iOS以來,我從來沒有做過任何不同的事情。 如果我這樣做:

lblMyHours.text = @"12";

它不應該只是放在我現有的標簽上。

這尤其是內部發生UITableView ,我已經創建了一個用於伊瓦爾一UILabel在多數民眾贊成UITableViewCell 如果用戶在單擊單元格后對某個值進行調整(將其帶到詳細信息屏幕進行編輯),當我彈回時,我會在ViewDidAppear重新計算。 在重新計算中,我正在重置上面的標簽。 但它並沒有清除舊的。

每次返回新單元格時,您可能會添加新標簽。 您應該只替換當前標簽的文本。

有兩種方法可以實現這一點,一種是你已經在做的,正如@Guilherme正確指出的那樣。 另一種方法是創建一個自定義tableview單元格並將UILabel屬性放在那里。 對於viewDidAppear場景,您可以在.h文件中創建一個uilabel(在@interface聲明中),然后在ViewDidLoad方法中初始化它,並在ViewDidAppear方法中簡單使用,而不必再次聲明它。

我建議您按照我為ViewDidAppear問題描述的方式,並且對於UITableView問題,每次調用cellForRowAtIndex方法時在單元格的子視圖中搜索UILabel並將其從子視圖中刪除,類似於添加新標簽之前的

for(UIView *view in cell.subviews)
{
    if([view isKindOfClass:[UILabel class]])
    {
         [view removeFromSuperview];
    }
}

希望這可以幫助。

暫無
暫無

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

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