2013-02-25 95 views
0

我有一个根本性的问题,我想解决。我几乎完成了我的通用应用程序,并被告知我需要专门为iPad屏幕(例如)标签,按钮定制UI控件。所以,例如,我在我的一个xib中有viewDidLoad事件中的以下代码。iOS上的iPad控件特定的屏幕尺寸

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
{ 
    [_lblRandomDisplay setFont: [UIFont fontWithName: @"Helvetica Neue" size:100]]; 
} 
else 
{ 
    [_lblRandomDisplay setFont: [UIFont fontWithName: @"Helvetica Neue" size:250]]; 
} 

这里_lblRandomDisplay是IBOutlet中的UILabel财产,我增加了iPad上的字体,并减少它的iPhone。这是接近iPad屏幕的方式,还是iOS在iPad上查看时会自动缩放屏幕?作为一个方面说明,我已经将xib文件名命名为filename〜iphone.xib和filename〜ipad.xib,并且它基于模拟器中选择的设备正确加载。

在这些行中,我有一个使用UITableViews的设置屏幕(不使用Settings包),这是我为iPhone设计的并以编程方式从NSArray加载数据。当使用设置〜ipad.xib(从设置〜iphone.xib复制控件)在iPad上加载时,我没有专门调整iPad的行高,使其看起来更大。屏幕在iPad上显示确定,但看起来更小。这是正确的方法还是最好的方法是什么?

请指教。

+0

任何人都好吗? – Hema 2013-02-25 14:00:42

回答

0

您给出的建议,以自定义UIControls屏幕大小,似乎是错误的。所有设备上的UIControl尺寸和文字尺寸应保持不变。这些项目的尺寸设计适合可读性和可触摸性,与屏幕尺寸没有任何关系。

iOS设计时考虑到了这一点。如果使用iPad和iPhone xib或故事板制作通用项目,则无论设备如何,我都会发现用户界面小部件的像素/点大小相同(为简单起见,我忽略了视网膜/非视网膜区分)。例如,在这两种情况下,标准按钮的默认大小均为73 x 43,字体大小为15pt。导航栏在两台设备上都高达44 px /点。这是应该的。如果我们假设iPhone或iPad mini或iPad上的阅读距离大致相同,则没有理由调整文本大小。重新设计的iPad的想法是真的,你可以得到更多信息在一个屏幕上,而不是更大版本的相同信息。

有两种情况,其中iOS版“缩放画面”:

  • 是,如果你创建一个iPhone专用的应用程序,并在iPad上运行。然后有一个用户选项以双倍大小运行它。在这种情况下,包括字体大小在内的所有东西都会放大,但这是通过像素倍增完成的,所以效果非常模糊。看看它 - 你会明白这正是你为什么应该这样设计而不是的原因。

  • 如果您为iPhone和iPad使用单个xib/storyboard,并依靠自动布局(ios6 +)或自动调整遮罩(ios5-)自动调整不同屏幕尺寸的布局。此方法可以根据您的设置 - 按比例调整视图的图像内容大小,但不会动态调整文本内容的大小,如果您想这样做,您必须在代码中进行调整。这不是一个设计应用程序的好方法,最好是像你一样在独立的xib/storyboard中为iPhone和iPad制作专门的设计。

我希望当你说iPad“看起来小一些”时,你的意思是,UI在显示屏上消失时显得更小......但答案是没有,只是放大你的数据的大小,它是重新考虑你的布局,以适应每个屏幕上更多的数据。这就是为什么苹果iPad提供了SplitViewController并引入了Container ViewController的模式。

不知你是否也提高相关,但意见图形设计目的比例大小的单独的问题(你提到的100字体大小和250pt,而不是通常的尺寸UI控件标签)。您可能希望您的应用程序与屏幕缩放,有点像所谓的流体网页设计模式的可变窗口大小。因此,例如,你可以有一个基于填充你的iPhone屏幕上一个巨大的字母“A”的图形设备,并希望该信同样填补你的iPad屏幕。在这种情况下,您可能需要像在代码示例中一样设置字体大小。

你被肯定做正确的事改变你的表格单元格的不同设备的行高,但对于更大的屏幕,你当然可以让你的工作台高度大,在容纳更多的表格单元格的视图。

所有这些评论都有点一般情况下,你还没有发布你的问题的足够的细节。它常常有助于发布图片或两个...