我想在中心显示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);
}
答案 0 :(得分: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框架。