iPhone和iPad在设计上的区别

时间:2012-09-29 11:06:49

标签: iphone ios ipad uitextview

我在问一个非常基本的问题,我遇到了一些问题。 我知道iPhone和iPad之间的区别...... iPad支持SplitViewpopup over但是在设计时我遇到了错误。 我设计了一个UITextView

UITextView *textview = [[UITextView alloc] initWithFrame:CGRectMake(42, 150, 440, 60)];

这是设计textview的基本代码,但是当我在iPad模拟器上运行此代码时,对我来说似乎很好。但是当我在iPhone上运行时,它并不顺利。因为iPhone的尺寸不同。在这种情况下,我应该怎么做才能在iPhone和iPad上运行它。

1 个答案:

答案 0 :(得分:2)

我假设您选择了通用可执行文件,因此条件编译不适合您。

制作通用可执行文件时,应在根据设备类型进行调用之前检查所依赖的功能。在这种特殊情况下,您依赖于具有特定大小的屏幕。您应该根据可用屏幕的当前大小来计算它们,而不是硬编码“幻数”(42,15,440和60):

CGFloat w = [UIScreen mainScreen].bounds.size.width;
CGFloat h = [UIScreen mainScreen].bounds.size.height;
// Do something like this if you can
UITextView *textview = [[UITextView alloc]
    initWithFrame:CGRectMake(w*0.025, h*0.25, w*0.5, h*0.125)
];

有可能无法从屏幕尺寸计算实际尺寸,因为您不希望视图按比例缩放到屏幕。在这种情况下,您可以检查hw的值,检测设备大小,并使用相应的一组预定义大小来初始化您的视图。