Your problem is with the values you pass to UIEdgeInsetsMake . Values: top, left, bottom, right. Due to the arrow in the upper left corner, you need to make sure that the left value is large enough to go from the left edge of the image to the right side of the arrow.
Given the image you posted, you need something like:
UIEdgeInsetsMake(12, 32, 4, 4)
BTW - the image should only be left + right + 1 pixel wide and top + bottom + 1 pixel high. Thus, your image should not be almost as big as it is.
source share