【问题标题】:How to change screen size from user input value如何根据用户输入值更改屏幕大小
【发布时间】:2014-09-13 11:14:46
【问题描述】:

我有一个要求,即以用户输入维度的纵横比将图像显示到 imageview 中。如果用户输入width = 2000, height =500,但我的图像大小是350x199。如何将图像的纵横比适合用户输入。如果用户输入 2000 那么我需要保持 iPad 屏幕宽度为 2000 那么只有我可以保持纵横比。我该怎么做?

imgView=[[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 350, 199)];

【问题讨论】:

  • 能否提供更多细节或一些示例?
  • 我在房间里放了一张沙发。所以,我正在检查它是否适合房间的特定大小。例如,如果沙发尺寸宽度为 350,高度为 199。但用户输入房间尺寸宽度为 1500,高度为 800。所以,这里我的屏幕宽度需要将宽度更改为 1500,然后我需要放置长宽比为的沙发图像屏幕
  • @SviatoslavYakymiv:你明白吗?
  • 你试过我的回答了吗?

标签: objective-c ipad uiimageview uiimage aspect-ratio


【解决方案1】:

这段代码应该可以帮助你:

//input data
CGSize screenSize;
CGSize enteredRoomSize;
CGSize originalImageSize;

//ratio calculation
CGFloat widthRatio = screenSize.width / enteredRoomSize.width;
CGFloat heightRatio = screenSize.height / enteredRoomSize.height;
CGFloat minRatio = MIN(widthRatio, heightRatio);

//results calculation
CGSize roomViewSize = CGSizeMake(enteredRoomSize.width * minRatio, enteredRoomSize.height * minRatio);
CGSize imageSize = CGSizeMake(originalImageSize.width * minRatio, originalImageSize.height * minRatio);

如果您想对宽度和高度使用不同的比率,请使用以下代码:

//input data
CGSize screenSize;
CGSize enteredRoomSize;
CGSize originalImageSize;

//ratio calculation
CGFloat widthRatio = screenSize.width / enteredRoomSize.width;
CGFloat heightRatio = screenSize.height / enteredRoomSize.height;

//results calculation
CGSize imageSize = CGSizeMake(originalImageSize.width * widthRatio, originalImageSize.height * heightRatio);

【讨论】:

  • screensize的值是多少?
  • [UIScreen mainScreen].bounds.size 或 self.view.frame.size。可能第二个更好。
  • 我有 2 个用于 x(width)、y(height) 的 UITextField。如果用户输入 1000 宽度,我应该直接将 1000 应用于 CGFloat widthRatio = self.view.frame.size.width / 1000 ???
  • 是的。您可以使用任何数据。此代码将缩放图像。
  • 我有 UIImageView 来显示图像数组 imgView=[[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 350, 199)];我如何将比率应用于 CGRectMake ???
猜你喜欢
  • 2023-03-11
  • 2020-09-04
  • 1970-01-01
  • 1970-01-01
  • 2023-02-19
  • 2021-07-13
  • 1970-01-01
  • 2012-01-01
相关资源
最近更新 更多