ios - 以 UISLider 为外接半径的五边形

标签 ios objective-c cocoa

我想在 iOS 中用 UISliders 绘制一个 pentagon 作为 circumradii(一组五个 UISliders朝不同的方向前进并从五边形的中心出发)。目前,我已经使用一个共同的 anchorPoint (:setAnchorPoint) 旋转了五个 UISliders,但它们似乎并非源自共同点。 我该怎么做?我需要开始使用自定义控件吗? Quartz2D 我还可以使用什么? 一些特定的指标会很有用(请不要只说“使用 Quartz2D”)

这是我取得的成就Imgur

这就是我想要实现的Imgur

最佳答案

我将各种 slider 定义为 IBOutletCollection,因此我可以在 Controller 中将它们作为数组访问。然后我在 viewWillAppear:

中运行以下代码
CGPoint viewCenter = self.view.center;

for (NSInteger i = 0, count = self.sliders.count; i < count; ++i) {
    UISlider *slider = self.sliders[i];

    CGFloat angle = 2.0f * M_PI / count;

    CALayer *layer = slider.layer;
    layer.anchorPoint = CGPointMake(0.0f, 0.5f);
    layer.position = viewCenter;
    layer.transform = CATransform3DMakeRotation(i * angle - M_PI_2, 0.0f, 0.0f, 1.0f);
}

结果截图如下:

Circumradii sliders

这是你想要的吗?

关于ios - 以 UISLider 为外接半径的五边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17484907/

相关文章:

objective-c - 我如何发现委托(delegate)可以/应该实现哪些消息?

objective-c - 无法通过 RNCryptor 解密文本文件

ios - 尝试在 userDefaults 中存储 Int、[string] 对的数组时出现错误

ios - 在objective-c中按字母顺序对数组进行排序

ios - 选择UICollectionView

macos - 获取 NSStatusItem 框架更改的通知?

iphone - 遍历响应者链以传递自定义事件。这是错误的吗?

ios - EXC_BAD_ACCESS 在尝试扩展 UIView 类时

ios - 如何使 TextField 右对齐(尾随)

objective-c - 通知被删除