iOS Default font is wrong

Stephen F Northover steve.x.northover at oracle.com
Wed Oct 30 06:38:16 PDT 2013


Let's use UIButton as this seems to match the stack overflow discussion.

Steve

On 2013-10-30 7:51 AM, Oldrich Maticka wrote:
> I have tried simple app with several controls. Fonts in Interface 
> Builder -
>
> UIButton - System 15.0
> UILabel  - System 17.0
> UITextField - System 14.0
> UITextView - System 14.0
>
> Same fontsize - 15.0 has UIButton's label created at runtime.
>
> UIFont class methods for getting system font information return:
> + labelFontSize             17.0
> + buttonFontSize          18.0
> + smallSystemFontSize 12.0
> + systemFontSize         14.0
>
>
> In fx Java_com_sun_javafx_font_MacFontFinder_getSystemFontSize returns 
> 13.0
>
> We can use different CTFontUIFontType in this method to return 
> something "better" than 13.0 -
> e.g. with kCTFontPushButtonFontType as an argument to 
> CTFontCreateUIFontForLanguage() it returns 15.0, but we need to 
> decide, what we want to use as default. Should be our system default 
> the size same as for UIButton, UILabel or other control?
>
>
> I was using iPad3 (iOS 7.0, Xcode 5.0).
>
> Olda
>
> On 10/29/13 7:32 PM, Stephen F Northover wrote:
>> I was going to create a dummy control (say a Button) and ask for the 
>> font.  Just an idea.
>>
>> Steve
>>
>> On 2013-10-29 2:18 PM, Felipe Heidrich wrote:
>>> The code Richard sent is creating a dummy font and asking for its size.
>>>
>>> The problem is that there are about 3 thousand different fonts on 
>>> the Mac ;-)
>>>
>>> Here we are creating a CTFont. For Mac OS X most native apps 
>>> probably would be using a NSFont (cause that is what cocoa controls 
>>> take). Likewise on iOS I think the "common" font is UIFont (cause I 
>>> think that is what UIKIt controls take).
>>>
>>> Could anyone fire up Xcode, create a dummy iOS app, create a UIFont 
>>> and see what is the size ?
>>>
>>> Felipe
>>>
>>>
>>> On Oct 29, 2013, at 8:40 AM, Stephen F Northover 
>>> <steve.x.northover at oracle.com> wrote:
>>>
>>>> If the OS is reporting the wrong value for the default a classic 
>>>> trick is to create a dummy control that normally has the font we 
>>>> want and query that.
>>>>
>>>> Steve
>>>>
>>>> On 2013-10-29 11:21 AM, Richard Bair wrote:
>>>>> Hi guys,
>>>>>
>>>>> The default font for iOS is supposed to be System Bold 15 
>>>>> (according to 
>>>>> http://stackoverflow.com/questions/17325152/what-size-font-is-the-title-in-a-default-uibutton 
>>>>> anyway), and it does look more correct to me. Our code is getting 
>>>>> to this native method in MacFontFinder.c
>>>>>
>>>>> JNIEXPORT jfloat JNICALL 
>>>>> Java_com_sun_javafx_font_MacFontFinder_getSystemFontSize
>>>>>    (JNIEnv *env, jclass obj)
>>>>> {
>>>>>      CTFontRef font = CTFontCreateUIFontForLanguage(
>>>>>                           kCTFontSystemFontType,
>>>>>                           0.0, //get system font with default size
>>>>>                           NULL);
>>>>>      jfloat systemFontDefaultSize = (jfloat) CTFontGetSize (font);
>>>>>      CFRelease(font);
>>>>>      return systemFontDefaultSize;
>>>>> }
>>>>>
>>>>>
>>>>> However it appears the return value is 13 instead of 15 (and I 
>>>>> don't know what the actual default font family / weight is that 
>>>>> we're returning). It is possible the answer coming from this 
>>>>> native API call is "wrong". Any ideas?
>>>>>
>>>>> Richard
>>
>



More information about the openjfx-dev mailing list