You should cancel operation for each UIControlState separately

If you are setting UIButton's image like this:

        [button setImageForState:UIControlStateNormal withURL:imageURL];
        [button setImageForState:UIControlStateHighlighted withURL:highlightedImageURL];
        [button setImageForState:UIControlStateSelected withURL:selectedImageURL];

The old code will cause UIButton only to download the last `UIControlStateSelected` image.