ios - 如何改变旋钮的旋转角度? iOS

标签 ios

<分区>

我使用这个自定义控件:https://github.com/nathanday/ndrotator . 如何改变旋钮的旋转值(或角度)?

谢谢你的回答。给定限制之间的角度值保持不变!看:我有

  self.fmRotator.minimumDomain = 0.5* M_PI;
  self.fmRotator.maximumDomain = 2* M_PI;

// if i set manually value instead of rotatorValue, for example:
fmRotator.angle = (0.5f*M_PI+M_PI*rotatorValue*1.5f); // it's work perfect;
//or 
rotatorValue = 5.0f/10.0f; 
fmRotator.angle = (0.5f*M_PI+M_PI*rotatorValue*1.5f); // work too.
//but
rotatorValue = mySlider.value; // UISlider, return from 0 to 1;
fmRotator.angle = (0.5f*M_PI+M_PI*rotatorValue*1.5f);
// rotatorValue is float between 0..1;
// doesn't work(

最佳答案

根据documentation angle 必须是 minimumDomainmaximumDomain 之间的值。唯一重要的是将 angle 值保持在给定的限制之间。 在您的代码中,如果 myVariable 小于 5.0,则什么都不会发生。假设您使用值范围为(0 .. 1.0,默认值)的 UISlider,并且您想要在 -90 到 +90 度(-PI 到 PI)之间旋转

你可以这样设置:

myRotator.minimumDomain = -M_PI;
myRotator.maximumDomain = M_PI;

float newAngle = slider.value - 0.5; // translate value to -0.5 .. 0.5
myRotator.angle = newAngle * M_PI;

这是基础数学。只需找出您需要的范围并将 slider 的值转换为目标域即可。或者,您可以设置 slider 的最小值和最大值以匹配域。在这种情况下,您需要将以下几行添加到设置中:

slider.minimumValue = myRotator.minimumDomain;
slider.maximumValue = myRotator.maximumDomain;

事件处理程序将非常简单:

myRotator.angle = slider.value;
[myRotator setNeedsDisplay];

关于ios - 如何改变旋钮的旋转角度? iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18253496/

相关文章:

ios - 使用 NSTimer 或 CADisplayLink 查找 UIView 的移动速度

objective-c - 什么时候触发NSFireDelayedPerform

php - 如何从 UITableViewCell 获取 SQL 信息并用作 MYSQL 解析的凭据

ios - UIView 应如何访问数据模型以显示数据(使用 Swift)?

ios - 在 UIBarButtonItem 的 customView 字段中更新 UIView

iphone - 返回一个 stringfromdate 方法

iphone - CATextLayer 和字符之间的跟踪/间距

ios - 本地用户通知未在后台获取时创建

ios - iOS 上 UITextField 验证的更好方法是什么?

ios - 如何在 iOS/Objective-C 中存储身份验证 key ?