- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要像附图一样创建一个时间栏。蓝线是指示某些操作的日期。大红色箭头标记用于滑动以选择任何蓝线。在背景中,条形图分为年份。红色小圆圈表示年份。
有什么想法,我该如何开始?
谢谢
最佳答案
如果蓝条移动不多,并且您不需要经常调整此 View 的大小(在 iPhone 上通常是这种情况),那么我建议子类化 UIControl(或 UIView)并实现自己做。
有一个 NSArray 属性存储 NSDate 对象和方法,如 addDate:
, removeDate:
, removeDateAtIndex:
来改变它的内容从另一个对象(就像你的 View Controller )。在这些方法中,您可以添加或删除传递的日期并调用 [self setNeedsDisplay];
来重新绘制线条。
您将需要一些方法来计算日期在 slider 上的位置(以像素为单位)并计算特定坐标处的日期。这应该很容易(基本线性插值)。
并假设红色 slider 只能指向蓝线(但不能指向蓝线之间),将 NSDate 指针变量添加到当前选定的日期。在
在 drawRect: 方法中,您需要使用 CoreGraphics 函数绘制所有线条。如果您需要这方面的帮助,请查阅文档。 Apple 也有一些很棒的示例应用程序。
要显示红色 slider ,您可以添加一个带有 UIPanGestureRecognizer 的自定义 UIImageView,并确保它仅在手势处理程序中垂直移动。或者可以添加不带轨道图像的 UISlider(对此我不是 100% 确定)。无论哪种情况,您都需要在用户放手后调整 slider 的位置,使其跳到最近的蓝线。
关于iphone - 如何在 iPhone 中创建自定义时间栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10583474/
我是一名优秀的程序员,十分优秀!