Комикс с панелью за панелью - PullRequest
1 голос
/ 07 марта 2011

У кого-нибудь есть идея показать панель изображений за панелью.В настоящее время у меня есть одно комическое изображение, в этом изображении есть 4 панели, мне нужно разделить это изображение на 4 панели и хочу показать, что в iPhone четыре последовательных панели. Любое тело имеет представление об этом?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 05 ноября 2014

Попробуйте это рабочее решение. Вы должны иметь ответ рамы / панели и использовать метод ниже

    - (BOOL)zoomPanel
{
//Grab the frame from the database
CKUViewFrame* frame = [self.uview frameForPage:self.pageIndex
frame:self.frameIndex];
if (frame == nil)
{
return NO;
}
//Translate the timing
NSTimeInterval animationTime = [frame.animationDuration
doubleValue];
UIViewAnimationOptions animationOptions =
UIViewAnimationOptionBeginFromCurrentState | ([frame.animationCurve
integerValue] << 16);o
//Get the rects and convert to device coordinates
CGRect frameRectPercent = CGRectMake([frame.rectLeft floatValue],
[frame.rectTop floatValue], [frame.rectWidth floatValue],
[frame.rectHeight floatValue]);
CGRect frameRect = CGRectMake((frameRectPercent.origin.x *
self.pageImageView.image.size.width),
(frameRectPercent.origin.y *
self.pageImageView.image.size.height),
frameRectPercent.size.width *
self.pageImageView.image.size.width,
frameRectPercent.size.height *
self.pageImageView.image.size.height);
//Set the mask color
UIColor* maskColor = [UIColor colorWithRed:[frame.colorRedValue
floatValue] green:[frame.colorGreenValue floatValue] blue:
[frame.colorBlueValue floatValue] alpha:[frame.colorAlphaValue
floatValue]];
[UIView animateWithDuration:animationTime delay:0
options:animationOptions animations:^
{
//Determine the zoomScale to use
CGFloat zoomScale = self.view.bounds.size.width /
frameRect.size.width;
CGFloat verticalZoomScale = self.view.bounds.size.height /
frameRect.size.height;
if (verticalZoomScale < zoomScale)
{
zoomScale = verticalZoomScale;
}
//Determine the offset to use
CGFloat heightOffset = (((frameRect.size.height * zoomScale)
- (self.pageScrollView.bounds.size.height)) / 2);
CGFloat widthOffset = (((frameRect.size.width * zoomScale) -
(self.pageScrollView.bounds.size.width)) / 2);
self.pageScrollView.zoomScale = zoomScale;
self.pageScrollView.contentOffset = CGPointMake(widthOffset +
(frameRect.origin.x * zoomScale), heightOffset + (frameRect.origin.y *
zoomScale));
//Do the masking

return YES;
}
0 голосов
/ 07 марта 2011

Вы должны взглянуть на библиотеку Cocos2D .Он также имеет очень хорошую анимацию при переворачивании страниц.

В вашем случае я бы не хотел изменять изображение, только часть, отображаемую представлением.Вы можете сделать это в UIKit, изменив прямоугольник содержимого UIScrollView.

Или, используя Cocos2D, вы можете рассматривать каждую панель как Sprite в SpriteSheet и последовательно отображать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...