我想在中心动态显示一个 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);
}
最佳答案
你可以这样获取屏幕信息:
screenWidth = [UIScreen mainScreen].bounds.size.width;
screenHeight = [UIScreen mainScreen].bounds.size.height;
CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
您可以使用这些动态计算您想要的每个高度或宽度,并且您的 View 将获得正确的框架。
编辑:
- (void)viewDidLoad
{
[super viewDidLoad];
CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
_screen.frame = CGRectMake(20, 40, 320, screenHeight);
}
这将使你的 _screen 将从 40 开始,它也会在底部 40 挂起。
如果你想使 View 居中,可以这样:
_screen.frame = CGRectMake(20, 40, screenWidth-40, screenHeight-80);
并且不要忘记将屏幕添加到 super View 中,例如:
[self.view addSubview:_screen];
希望对您有帮助。
还有一个提示:如果您设置 _screen.backgroundcolor = [UIColor orangeColor];
进行测试,您可以看到您的 _screen 框架!
关于ios - 使用 float 变量更改 UITextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18829525/