我对Objective-C很新,我想知道是否有一种简单的方法可以将id设置为对象实例(具有合成属性),并直接获取/设置这些属性,如:
id myID = myInstance;
myID.myProperty = something;
Run Code Online (Sandbox Code Playgroud)
其中myInstance是一个具有名为myProperty的合成属性的对象.当我这样做时:
myInstance.myProperty = something;
Run Code Online (Sandbox Code Playgroud)
它可以工作,但是当我把它换成id时我得到了错误
在'_strong id'类型的对象上找不到属性'myProperty'
在使用id时,我是否必须手动制作getter/setter方法而不是使用synthesize?因为我似乎能够使id执行实例方法.
我正在绘制一幅未被清除的画布,并使其随着时间的推移逐渐消失为纯色,或者在显示背后层的alpha中消失.
我的第一直觉是简单地在图纸上填充一个矩形,每个框架都有一个低的alpha,这样填充颜色就会逐渐淡出画面.
但我发现了一些奇怪的行为(至少对我而言,我确信这是有原因的).填充颜色永远不会完全累积.结果的变化取决于油漆和填充颜色相互之间的颜色更浅/更暗.
我发现这个问题,有人和我一样:绘制画布后淡出线条?
最佳答案看起来不错,而且和我试过的一样.但它只适用于白色的黑色.这是同一个不同颜色的小提琴的另一个版本,你会看到绘画永远不会消失,它会留下一个幽灵:http://jsfiddle.net/R4V97/92/
var canvas = document.getElementById("canvas"),
ctx = canvas.getContext("2d"),
painting = false,
lastX = 0,
lastY = 0;
canvas.width = canvas.height = 600;
canvas.onmousedown = function (e) {
if (!painting) {
painting = true;
} else {
painting = false;
}
lastX = e.pageX - this.offsetLeft;
lastY = e.pageY - this.offsetTop;
};
canvas.onmousemove = function (e) {
if (painting) {
mouseX = e.pageX - this.offsetLeft;
mouseY = e.pageY - this.offsetTop;
ctx.strokeStyle = "rgba(255,255,255,1)"; …Run Code Online (Sandbox Code Playgroud)