我精通自定义视图。今天我开始使用故事板&我无法说服自己使用故事板。
问题: - 我在故事板中由View Controller设置。 - 在4英寸的模拟器上运行,我很高兴使用视图的布局。 - 在3.5英寸的模拟器上运行,我很沮丧,因为我的视图部分可见。
以下是截图。
我的SotryBaord(查看“删除用户”按钮)。
删除用户按钮框:
在4英寸模拟器上运行
在4英寸模拟器上运行(我有问题)
如何使用布局调整框架,以便在两个尺寸的iPhone中都能清晰显示。我的删除用户按钮不应该离开屏幕。
答案 0 :(得分:2)
配合,自动布局有点复杂,你需要掌握它,同时花费大量时间,但如果你想在几分钟内完成它,只需取消选中自动布局,选择每个UI元素并设置其自动调整大小如这个。
您可以更改自动布局,只需点按此按钮即可查看更改
希望这会有所帮助并节省时间。
答案 1 :(得分:1)
非常好的问题。当我升级它们以支持iphone 5屏幕尺寸时,我遇到了与我的每个应用程序完全相同的问题。
我最终做的是禁用自动布局,但我仍然使用故事板放置我的所有按钮,视图,图像等。我确保在放置所有项目时我在故事板中使用3.5in。然后我将那些UILabel或UIButton等连接到IBoutLet,然后在我的ViewDidLoad中,我检查它的iphone 4是否与iPhone 5相关,并相应地重新定位所有按钮。
例如。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
CGSize result = [[UIScreen mainScreen] bounds].size;
if(result.height == 480)
{
// iPhone Classic
}
if(result.height == 568)
{
// iPhone 5 this is the offset I am using
int yInt = 50;
[blurSlider setFrame:CGRectMake(31, 406+yInt, 271, 34)];
[alphaSlider setFrame:CGRectMake(31, 447+yInt, 271, 34)];
[blurLabel setFrame:CGRectMake(33, 392+yInt, 71, 24)];
[alphaLabel setFrame:CGRectMake(33, 436+yInt, 71, 24)];
}
}
}
我可以在没有使用故事板的情况下完成所有编码吗?我当然可以,但我发现故事板的视觉方面很吸引人,并且能够准确地看到屏幕上的所有内容。