I want to be able to an UI object like a UIImageView and tile an image inside of it.
I have been able to use CGContextDrawTiledImage to update the background in the
Rather than trying to modify a UIImageView, consider subclassing UIView instead. UIImageView is specifically designed for one non-tiled image and some of the internals may be messing you up. It's not really intended to be modified in the way you describe.
In a subclass of UIView (UITiledImageView?) you can use the drawRect: method to do what you want. You can even create ivars for the image, its size and tiling properties for greater flexibility and extensibility.
Updated with sample project: http://github.com/kailoa/6tringle-tiledimageview/tree/master
The relevant drawing code:
- (void)drawRect:(CGRect)rect
{
if (TiledImage) {
//Since we are retaining the image, we append with ret_ref. this reminds us to release at a later date.
CGImageRef image_to_tile_ret_ref = CGImageRetain(TiledImage.CGImage);
CGRect image_rect;
image_rect.size = TiledImage.size; //This sets the tile to the native size of the image. Change this value to adjust the size of an indivitual "tile."
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextDrawTiledImage(context, image_rect, image_to_tile_ret_ref);
CGImageRelease(image_to_tile_ret_ref);
}
}