我在问一个非常基本的问题,我遇到了一些问题。
我知道iPhone和iPad之间的区别...... iPad支持SplitView
,popup over
但是在设计时我遇到了错误。
我设计了一个UITextView
UITextView *textview = [[UITextView alloc] initWithFrame:CGRectMake(42, 150, 440, 60)];
这是设计textview的基本代码,但是当我在iPad模拟器上运行此代码时,对我来说似乎很好。但是当我在iPhone上运行时,它并不顺利。因为iPhone的尺寸不同。在这种情况下,我应该怎么做才能在iPhone和iPad上运行它。
答案 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)
];
有可能无法从屏幕尺寸计算实际尺寸,因为您不希望视图按比例缩放到屏幕。在这种情况下,您可以检查h
和w
的值,检测设备大小,并使用相应的一组预定义大小来初始化您的视图。