iphone - Which method to use to display text ?Why? -


when drawing using coregraphics draw string/label have 2 methods

- (cgsize)drawinrect:(cgrect)rect withfont:(uifont *)font linebreakmode:(nslinebreakmode)linebreakmode alignment:(nstextalignment)alignment; 

eg:

   [value drawinrect:cgrectmake(xvalue, rect.origin.y, objlegends.value *singleunitwidth,heightofbar)                  withfont:[uifont systemfontofsize:10.0f]             linebreakmode:nslinebreakbyclipping                 alignment:nstextalignmentcenter]; 

and

cg_extern void cgcontextshowtext(cgcontextref c, const char *string,     size_t length) cg_available_starting(__mac_10_0, __iphone_2_0); 

eg

        cgcontextsavegstate(context);         // tanslate , scale upside-down compensate quartz's inverted coordinate system         cgcontextsettextmatrix(context, cgaffinetransformmake(1.0,0.0, 0.0, -1.0, 0.0, 0.0));          cgcontextselectfont(context, "helvetica", 10.0f, kcgencodingmacroman);         cgcontextsettextdrawingmode(context, kcgtextfill);         cgcontextsettextposition(context, xvalue, rect.size.height-heightoftext);           if ([value canbeconvertedtoencoding:nsmacosromanstringencoding])         {             cgcontextshowtext(context, [value cstringusingencoding:nsmacosromanstringencoding],5);             //                              strlen([value cstringusingencoding:nsmacosromanstringencoding]));         }         cgcontextrestoregstate(context); 

which 1 method , why?

the best method 1 simplest achieve goal. higher level of api can use better. if can use nsstring method should - unless can use uilabel (or similar) job you. try write least code possible , reuse code that's provided you, dropping use lower level api if requirements or performance profiling show need to.


Comments

Popular posts from this blog

Java sticky instances of class com.mysql.jdbc.Field aggregating -