小编Jon*_*ull的帖子

使用贝塞尔曲线绘制螺旋线

这适用于iPad应用程序,但它本质上是一个数学问题.

我需要绘制一个变化(单调增加)线宽的圆弧.在曲线的开始处,它将具有起始厚度(假设为2pts),然后厚度将平滑地增加直到弧的末端,其将处于其最大厚度(假设为12pts).

我认为最好的方法是创建一个UIBezierPath并填充形状.我的第一次尝试是使用两个圆弧(带有偏移中心),并且工作精细到90°,但弧度通常在90°和180°之间,因此接近不会切割它.

随着厚度增​​加,90度弧的例子

我目前的方法是使用贝塞尔四边形或三次曲线制作一个轻微螺旋(一个从圆弧略微增长,一个略微收缩).问题是我在哪里放置控制点,以便与圆弧(也就是形状"厚度")的偏差是我想要的值.

约束:

  • 形状必须能够以任意角度(彼此相差180°)开始和结束
  • 形状的"厚度"(与圆的偏差)必须以给定值开始和结束
  • "厚度"必须单调增加(它不能再变大,然后再变小)
  • 它必须看起来光滑,不会有任何急剧弯曲

我也对其他解决方案持开放态度.

math bezier spiral ios uibezierpath

6
推荐指数
1
解决办法
3559
查看次数

以编程方式滚动UIScrollView时显示指示器

我正在编写一个框架,它简化了iOS中常见的(但有时是棘手的)拖放任务.作为此框架的一部分,当用户拖动(并暂时保持)scrollView边缘附近的对象时,它将以编程方式在边缘方向上滚动scrollView.

我能够使用-setContentOffset滚动得很好:动画:(传递NO到动画)和NSTimer,但滚动指示器不显示.这会导致令人困惑的用户体验(如果背景是普通/无纹理的话,很难说它是滚动的).

我尝试从我的NSTimer回调调用-flashScrollIndicators(因为设置了contentOffset),但由于某种原因,指示符等到滚动完成后再闪烁.

我想要的效果是指针在滚动发生时出现,然后在停止后消失.基本上,我想要的效果与用户用手指滚动scrollView以触发由于拖动引起的编程滚动时相同.

关于如何实现这一点的任何想法?

drag-and-drop objective-c uiscrollview ipad ios5

5
推荐指数
1
解决办法
558
查看次数