How does it fail? With an error? Does your debug statment get printed on console? You're using argument called 'color', but if I remember correctly, 'color' is also also a public variable (well, via getter/setter pair) that UIButton uses internally. Could it overlap? Anyway, I just recenly changed the tint color of spirte by only setting the 'color' variable of the sprite (without a tween, of course). That worked fine.