【问题标题】:Xcode: How to reveal programmatically png imageXcode:如何以编程方式显示 png 图像
【发布时间】:2015-11-11 23:33:45
【问题描述】:

我必须做一个速度计。 我有一个速度条(png 文件),我想在 gps 速度变化时重新显示它。

示例 ... 最高速度设置为 100 (km/h)。 当我以 50 公里/小时的速度行驶时,该条在 50% 时可见。 当我以 40 公里/小时的速度行驶时,应用程序会显示 40% 的速度。

我想在速度条图像上方放置一个图像,并根据 GPS 速度隐藏第一个图像。

【问题讨论】:

  • 你到底在找艾米丽什么?请查看stackoverflow.com/help/how-to-ask,然后修改您的问题。如果您根本不知道从哪里开始,我建议您使用教程来帮助您入门。
  • 嗨,我正在寻求帮助,为我的 iphone 应用程序制作图形速度计。我完成了 gps 代码,现在我想集成图形部分。我正在使用 xcode 7.0

标签: objective-c uiscrollview gps


【解决方案1】:

您可以使用一个简单的技巧来实现此效果。您可以将ImageView 包含在另一个UIView 中。为ImageView 的前导、顶部和底部空间提供Autolayout Constraints。不要添加尾随空格约束。现在,当您更改 UIViews 宽度时,您可以看到根据您的输入显示的图像。

结构如下:

和自动布局约束:

1)SpeedoHolder:

2)封面视图:

3)ImageView:

现在在viewController.h 中连接所需的插座。我正在使用滑块进行演示:

//Trailing space constraint of CoverView
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *trailingSpaceConstraint;

@property (weak, nonatomic) IBOutlet UISlider *slider;

@property (weak, nonatomic) IBOutlet UIView *speedoHolder;

- (IBAction)sliderValueChanged:(id)sender;

现在实现:

- (IBAction)sliderValueChanged:(id)sender {
  CGFloat newVal = self.slider.value;

  self.trailingSpaceConstraint.constant = self.speedoHolder.frame.size.width * (1-newVal);

  [self.view setNeedsUpdateConstraints];
  [self.view layoutIfNeeded];
}

PS:不要忘记在Attributes Inspector 中为CoverView 启用Clips Subviews

更新:您可以通过修改trailingSpaceConstraint.constant 的值来微调隐藏。即,如果您有最大速度和当前(GPS)速度,请执行以下操作:

self.trailingSpaceConstraint.constant = self.speedoHolder.frame.size.width * (gpsSpeed / maxSpeed);

【讨论】:

  • 谢谢ShahiM,这就是我想做的……对不起我的英语。在这个我们将尝试这个代码。我可以在哪里设置我的汽车的最大速度?我会尝试将 gps 速度与 UIViews 的宽度联系起来。对吗?
猜你喜欢
  • 2023-03-18
  • 1970-01-01
  • 2011-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-16
相关资源
最近更新 更多