我正在开发一个日历。我有一个多列列表视图,列表视图的每个单元格由图像视图组成。 我的问题是......要创建一个开始时间的事件,例如13.20到13.45,我怎么才能在这段时间内对imageview进行彩色处理?
任何人都可以举个例子吗? 我把一张图片作为我假装的一个例子。
感谢您的时间和帮助。
答案 0 :(得分:2)
不要因ImageView
而浪费时间,因为他们不会这样做。开始编写自己的View
子类,以后会节省您的时间。只需覆盖onDraw
方法并使用Canvas
对象在正确的位置绘制矩形。
要创建所需的视图,我会在每行中都有一个网格视图,其中包含一个自定义组件,负责呈现与日期(列)和时间范围(行)对应的相应议程时段。
答案 1 :(得分:0)
正如另一种选择(我同意MarvinLabs的做法,但我想把它扔出去)。
你可以有一个主ViewController,为每个条目添加一个UIView作为子视图。有了它,您可以更简单地设置每个条目的背景颜色和边框。您必须实施您的展示位置算法。
我相信MarvinLabs的方法会导致更小的占地面积(记忆明智)然而,我不知道多少。至少这是另一种选择。
此外,作为您可能不想使用imageView的原因的解释是,imageView固有地附带了许多对您来说不必要的代码,例如图像解码器,图像显示代码等。由于您实际上并未使用图像,因此您不需要将此代码(默认情况下,如果您使用imageView对象)合并到二进制文件中。