2010-06-05 8 views
0

J'ai un morceau de code comme ceci:UITextField cadre droit

CGSize lSize = [@"Hello World" sizeWithFont:[UIFont fontWithName:@"Arial" size:13]]; 

Maintenant, je veux avoir le bon de voir ce texte dans le UITextField. Je ne veux pas changer la taille de la police juste le cadre pour UITextField pour s'adapter à ce texte.

je vraiment apprécier toute aide

Répondre

0
#define MAIN_FONT_SIZE  17 
#define MIN_MAIN_FONT_SIZE 11 
#define MAX_TEXT_WIDTH  100 

CGPoint point; 
CGFloat actualFontSize; 
CGSize size; 

UIFont *mainFont = [UIFont systemFontOfSize:MAIN_FONT_SIZE]; 

NSString *string = @"A String Of Text"; 
size = [string sizeWithFont:mainFont 
      minFontSize:MIN_MAIN_FONT_SIZE 
      actualFontSize:&actualFontSize 
      forWidth:MAX_TEXT_WIDTH 
      lineBreakMode:UILineBreakModeTailTruncation]; 

De là, vous pouvez ajuster la largeur de votre textField:

[textField setFrameSize:NSMakeSize(size.width,textField.frame.size.height)]; 

Ou vous pouvez dessiner le texte à un point calculé en fonction de la taille :

point = CGPointMake(textXPosition, textYPosition); 
[string drawAtPoint:point 
       forWidth:MAX_TEXT_WIDTH 
       withFont:mainFont 
       minFontSize:actualFontSize actualFontSize:&actualFontSize 
       lineBreakMode:UILineBreakModeTailTruncation 
       baselineAdjustment:UIBaselineAdjustmentAlignBaselines];