2013-07-08 96 views
0

我希望做一些與UIImage的標籤,它會顯示,如果沒有加載照片。 代應用這一形象的是更爲有用,因爲它很容易本地化的文本。 我有代碼:的NSString drawAtPoint與

NSString *text = @"Photo not loaded yet. Please wait."; 
UIFont *font = [UIFont boldSystemFontOfSize:35]; 
CGSize imageSize = CGSizeMake(400, 400); 

CGSize constraint = CGSizeMake(imageSize.width * 0.8f, imageSize.height * 0.8f); 
CGSize textSize = [text sizeWithFont:font constrainedToSize:constraint lineBreakMode:NSLineBreakByWordWrapping]; 

UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0); 

CGPoint pointToDraw = CGPointMake((imageSize.width - textSize.width)/2, (imageSize.height - textSize.height)/2); 

[text drawAtPoint:pointToDraw forWidth:textSize.width withFont:font lineBreakMode:NSLineBreakByWordWrapping]; 

UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

return image; 

但只繪製第一線,像截圖。

Simulator screenshot

我哪裏錯了?

謝謝。

+0

註銷TEXTSIZE至少會告訴你問題是否與'sizeWithFont返回的大小:constrainedToSize:lineBreakMode:'或實際繪圖。 –

+3

爲什麼不添加標籤並在圖像可用時將其刪除?還是一個活動指標? – Wain

+0

更容易使用UILabel來顯示您的消息。隱藏UIImageView(將其隱藏屬性設置爲YES)並顯示UILabel(將隱藏設置爲NO)。 –

回答

2

the documentation-drawAtPoint:forWidth:withFont:

用指定的字體和屬性繪製字符串中在當前圖形上下文指定點的單個線。

人體工程學,使用不同的方法。 -drawInRect:withFont:lineBreakMode:看起來像一個堅實的候選人。

+1

謝謝。這是我的錯誤! – Andrey

相關問題