使用 UISlider 更改画笔大小
Posted
技术标签:
【中文标题】使用 UISlider 更改画笔大小【英文标题】:Change Brush Size Using UISlider 【发布时间】:2011-11-18 04:37:06 【问题描述】:我正在尝试使用 UISlider 更改我正在制作的 iPad 应用学校项目的画笔大小,但我不知道如何。
我已经有一个 UISlider 连接到它的出口和动作。
这是我的画笔大小代码。
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 25.0);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), redAmt, greenAmt, blueAmt, alpha);
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), endingPoint.x, endingPoint.y);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), endingPoint.x, endingPoint.y);
CGContextStrokePath(UIGraphicsGetCurrentContext());
CGContextFlush(UIGraphicsGetCurrentContext());
touchDraw.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
【问题讨论】:
设置线宽没问题。你能告诉你的代码你是怎么画的吗? 你去,先生,我编辑了它。它只是一个简单的绘图应用程序。 【参考方案1】:我不确定我是否关注你。现在您只需将线宽设置为25.0f
。为什么不将变量设置为UISlider
每次更改时的值,并将线宽设置为该值?
【讨论】:
这样做比每次都向滑块询问线宽要好。使用视图作为值的主要存储是一种反模式。【参考方案2】:这一行:
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 25.0);
需要是这样的:
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), self.brushSizeSlider.value);
其中brushSizeSlider
是连接到画笔大小滑块的IBOutlet
属性的名称。
【讨论】:
当然你也必须设置 UISlider 的最小值和最大值。 @rob 只是为了澄清先生,IBOutlet 不是 IBAction?因为 XCode 将其更改为“self->slider.value” @Cristiano,好的,有一个 IBAction 方法,在更改滑块值时将调用该方法。使用 sender 对象获取值。用它来画画。 @Cristiano:您应该将IBOutlet
宏放在属性上(如@property(weak) IBOutlet UISlider *brushSizeSlider;
),而不是实例变量。然后,除其他优点外,您还可以控制是否拥有 (strong
) 或不拥有 (weak
) 出口的价值。 《资源规划指南》提供了有关网点所有权政策的指导。以上是关于使用 UISlider 更改画笔大小的主要内容,如果未能解决你的问题,请参考以下文章