我正在以編程方式創建標籤。不幸的是,我發現每次更新標籤時,我都會創建一個新實例。有沒有辦法在創建之前檢查UILabel是否已經存在?IOS/Objective-C:延遲加載UILabel
這是我當前的代碼來創建標籤:
UILabel *percentLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, height, 280, 20)];
如果我調理它之後,我得到的錯誤,它並不能識別標籤:
for (id percentLabel in self.view.subviews) {
if (![percentLabel isKindOfClass:[UILabel class]]) {
UILabel *percentLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, height, 280, 20)];
}
percentLabel.textAlignment = NSTextAlignmentCenter;
感謝您的任何建議。
你把這段代碼放在哪裏? – AdamPro13
現在它是在它自己的方法中,我做各種東西來計算百分比。當你改變會改變百分比的東西時,該方法被調用。 – user6631314
當self.view沒有子視圖,它不會進入循環並且沒有創建UILabel,並且如果self.view有一些不是UILabels的子視圖,那麼將創建新的UILabel並且不會使用因爲當它存在if條件時,標籤實例被釋放,並且應用程序也會崩潰,因爲它試圖在沒有屬性textAlignment(即現在的代碼發生了什麼)的某種其他類型的視圖上查找textAlignment。如果self.view具有UILabel視圖,它將對齊文本。 – abintom