0

我想在中心显示一个 UITextView,动态显示 3.5 英寸显示屏和 4 英寸显示屏。但它有顶部和底部的“填充”20 分。

所以我创建了这段代码来测量 UIView 的高度:

CGFloat screenHeight = _screen.frame.size.height;
float scrollHeight = screenHeight - 40;

然后我添加这一行来设置屏幕:

_screen.frame = CGRectMake(20, 40, 320, scrollHeight);

但我在我的 4 英寸 iPod touch 上看不出有什么不同……我做错了什么?

更新:这是我的 .h 文件:

@property (strong, nonatomic) IBOutlet UIView *screen;

这是我的 .m 文件:

- (void)viewDidLoad
{
    [super viewDidLoad];

    CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
    _screen.frame = CGRectMake(20, 40, 320, screenHeight);
}
4

1 回答 1

1

您可以像这样确定屏幕信息:

screenWidth = [UIScreen mainScreen].bounds.size.width;
screenHeight = [UIScreen mainScreen].bounds.size.height;
CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];

您可以使用这些动态计算所需的每个高度或宽度,并且您的视图将获得正确的框架。

编辑:

- (void)viewDidLoad
{
    [super viewDidLoad];

    CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
    _screen.frame = CGRectMake(20, 40, 320, screenHeight);
}

这将使您的 _screen 将从 40 开始,并且它也会在底部 40 处挂起。

如果您想制作居中视图,请像这样:

    _screen.frame = CGRectMake(20, 40, screenWidth-40, screenHeight-80);

并且不要忘记将屏幕添加到超级视图中,例如:

[self.view addSubview:_screen];

我希望它有所帮助。还有一个提示:如果您设置_screen.backgroundcolor = [UIColor orangeColor];为测试,您可以看到您的 _screen 框架!

于 2013-09-16T13:48:10.223 回答