Как 'Сгладить' несколько UIImageViews в ОДИН?

Исключения не должны быть выданы как нормальный часть проверки. Проверка, вызванная из бизнес-объектов, является последней линией обороны и должна только произойти, если UI не удается проверить что-то. Как таковой их можно рассматривать как любое другое исключение на этапе выполнения.

Примечание, которое вот различие между определением правил проверки и применением их. Вы могли бы хотеть определить (т.е. кодировать или аннотировать) Ваши бизнес-правила в Вашем слое бизнес-логики, но вызвать их от UI так, чтобы они могли обработанный способом, соответствующим тому конкретному UI. Способ обработки будет варьироваться для различного UI, например, основанные на форме веб-приложения по сравнению с ajax веб-приложениями. Проверка исключения на наборе предлагает очень ограниченные опции для обработки.

Много приложений копируют свои правила проверки, такой как в JavaScript, ограничениях объекта области и ограничениях базы данных. Идеально эта информация будет только определена однажды, но реализующий это может быть проблема и требует латерального мышления.

7
задан Peter Hosey 1 October 2009 в 05:02
поделиться

2 ответа

Это принимает любой вид и делает из него UIImage. Любое представление и его подвиды будут «сплющены» в UIImage, который вы можете отобразить или сохранить на диск.

  - (UIImage*)imageFromView{

    UIImage *image;

    UIGraphicsBeginImageContext(self.view.bounds.size);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;

}
3
ответ дан 7 December 2019 в 05:26
поделиться

Почему бы вам просто не нарисовать оригинальные UIImages в фоновом буфере друг над другом, а затем записать объединенное изображение в файл? Ниже приведен пример того, как вы можете нарисовать два изображения в одном буфере:

CGImageRef bgimage = [bguiimage CGImage];
width = CGImageGetWidth(bgimage);
height = CGImageGetHeight(bgimage);

// Create a temporary texture data buffer
GLUbyte* data = (GLubyte *) malloc(width * height * 4);
assert(data);

// Draw image to buffer
CGContextRef ctx = CGBitmapContextCreate(data, width, height, 8, width * 4, CGImageGetColorSpace(image), kCGImageAlphaPremultipliedLast);
assert(ctx);

// Flip image upside-down because OpenGL coordinates differ
CGContextTranslateCTM(ctx, 0, height);
CGContextScaleCTM(ctx, 1.0, -1.0);

CGContextDrawImage(ctx, CGRectMake(0, 0, (CGFloat)width, (CGFloat)height), bgimage);

CGImageRef ballimage = [balluiimage CGImage];
bwidth = CGImageGetWidth(ballimage);
bheight = CGImageGetHeight(ballimage);

float x = (width - bwidth) / 2.0;
float y = (height - bheight) / 2.0;
CGContextDrawImage(ctx, CGRectMake(x, y, (CGFloat)bwidth, (CGFloat)bheight), ballimage);

CGContextRelease(ctx);
5
ответ дан 7 December 2019 в 05:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: