ios - 使用 float 变量更改 UITextView

标签 ios objective-c

我想在中心动态显示一个 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/

相关文章:

ios - SFSpeechRecognizer 是否需要互联网连接?

ios - UITabBars 和 UITableViews。单击表格单元格时将选项卡栏保持在屏幕上

谓词表达式中的 iOS Core Data 二元运算

objective-c - Xcode 中架构的重复符号

ios - 如何从 NSTaggedPointerString 获取字符串?

ios - iOS 上 Shinobi Charts 中散点系列的边距

ios - 无法运行 iOS 代码

ios - 消除 UITableViewCell 中 UIButton 上的 imageView 色调

objective-c - 使用 Restkit RKParams 发送 JSON 请求

ios - 谷歌 ios 分析不适用于少数屏幕