Извините, что не знаю, как добавить комментарий к ответам других пользователей, поэтому я создал новый ответ здесь:
Я просто хочу указать, что ответ от Kailoa Kadano содержит ошибку, image_rect.origin не инициализирован должным образом.
Около 3 недель назад я скопировал его код в свой проект, и он, похоже, работает. Однако вчера я попытался запустить код в симуляторе ios (iphone 4.3), он просто завис в CGContextDrawTiledImage.
После добавления следующей строки, как показано в ответе Керемка:
image_rect.origin = CGPointMake(0.0, 0.0);
снова работает!
Это довольно сложно, на самом деле сначала я тестировал на симуляторе iphone 4.3, затем недавно я тестировал на симуляторе iphone 4.0, затем вчера, когда я снова переключился на симулятор 4.3 или симулятор 4.2, возникает проблема. То есть image_rect.origin не определено, иногда это нулевые данные, возможно, иногда оно содержит некоторые случайные данные.