var button = NGUITools.AddChild<UIImageButton>(parent);
button.name = "my image button";
button.normalSprite = GuiButtonGroup.NormalSprite;
button.hoverSprite = GuiButtonGroup.NormalSprite; // This is intentional. Setting hoverSprite to NormalSprite disables the hover image, which is what we want.
button.pressedSprite = GuiButtonGroup.PressedSprite;
var sprite = NGUITools.AddSprite(button.gameObject, atlas, GuiButtonGroup.NormalSprite);
sprite.depth = GuiButtonGroup.Depth;
button.target = sprite;
var collider = button.gameObject.AddComponent<BoxCollider>();
collider.size = sprite.transform.localScale;