[英]Issue with overlapping text: iOS7
我通常發布源代碼和UI的例子,但我認為它與iOS7更改更相關,我不能看到它是一個代碼錯誤(還)。 我必須發布這么多的代碼和用戶界面才能適得其反。 所以這是我最好的非視覺描述:
自從將項目升級到iOS7后,我發現如果我在ViewDidAppear
或ViewWillAppear
調用更改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.