2

内部を保持するために使用するカスタムクラスに問題があります。UIScrollViewUIImageView

クラスのいくつかのオブジェクトを追加するMain UIScrollViewを持つ別の ViewController がありますCustomScrollViewClass。このカスタム内でズームを有効にしようとしていますUIScrollvViewが、成功しません!!!

UIImageViewすべて正常に動作しているように見えますが、オブジェクトの内部を からズームすることはできませんCustomScrollViewClass! 私は多くのことを試しましたが、今のところ何も機能していません。

//CustomScrollViewClass .h file

#import <UIKit/UIKit.h>

@interface CustomScrollViewClass : UIScrollView <UIScrollViewDelegate>
{
    BOOL iPad;
    BOOL iPhone5;

    NSString *imageName;

    UIImageView *imageView;
}

@property (nonatomic,strong) NSString *imageName;
@property (nonatomic,strong) UIImageView *imageView;

- (id)initWithImageAndFrame:(CGRect)frame imageName:(NSString*)image;

@end

これは.mファイルです

//CustomScrollViewClass .m file

#import "CustomScrollViewClass.h"

@implementation CustomScrollViewClass

@synthesize imageName,imageView;

- (id)initWithImageAndFrame:(CGRect)frame imageName:(NSString*)image
{
    self = [super initWithFrame:frame];

    if (self) {

        CGRect imagef;

        CGSize screenSize = [[UIScreen mainScreen] bounds].size;

        if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
            if (screenSize.height > 480.0f) {
                iPhone5 = YES;
                imagef = CGRectMake(0, 0, 320, 388);
            } else {
                iPhone5 = NO;
                imagef = CGRectMake(0, 0, 320, 420);
            }
            iPad = NO;
        } else {
            iPad = YES;
            iPhone5 = NO;
            imagef = CGRectMake(0, 0, 768, 824);
        }

        self.contentSize = imagef.size;
        self.maximumZoomScale = 2.0;
        self.minimumZoomScale = 1.0;
        self.zoomScale = 1.0;
        self.userInteractionEnabled = YES;
        self.multipleTouchEnabled = YES;

        imageName = image;

        UIImageView *imageAux = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imageName]];
        imageAux.frame = imagef;
        imageAux.contentMode = UIViewContentModeScaleAspectFit;
        imageView = imageAux;
        [self addSubview:imageView];

        NSLog(@"%@",imageName);
    }
    return self;
}

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    NSLog(@"%@",@"viewForZoomingInScrollView");
    return self.imageView;
}

- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
    NSLog(@"%@",@"scrollViewDidZoom");
}

@end

ご覧のとおり、ズームで動作するはずですが、動作しません! 画像は正常に表示されます。カスタム ビューを追加するために使用するコードの一部は次のとおりです (この例では、Main UIScrollViewに 5 つのカスタム ビューを追加します)。

//Method in MainView that I add objects from CustomScrollViewClass

-(void)PrepareScrollView
{
    CGSize scrollviewc;

    //Add Main ScrollView
    UIScrollView *scroll = [[UIScrollView alloc] init];

    if (iPad) {
        scrollviewf = CGRectMake(0, 200, 768, 824);
        scrollviewc = CGSizeMake((768 * 5), 824);
    }
    else {
        if (iPhone5){
            scrollviewf = CGRectMake(0, 180, 320, 388);
            scrollviewc = CGSizeMake((320 * 5), 388);
        } else {
            scrollviewf = CGRectMake(0, 60, 320, 420);
            scrollviewc = CGSizeMake((320 * 5), 420);
        }
    }

    scroll.frame = scrollviewf;
    scroll.contentSize = scrollviewc;
    scroll.pagingEnabled = YES;

    for (int i = 0; i < 5; i++) {
        CGRect imagef;

        if (iPad) {
            imagef = CGRectMake((i * 768), 0, 768, 824);
        } else {
            if (iPhone5){
                imagef = CGRectMake((i * 320), 0, 320, 388);
            } else {
                imagef = CGRectMake((i * 320), 0, 320, 420);
            }
        }

        //Add Custom ScrollView with UIImageView
        CustomScrollViewClass *AUX = [[ImageView alloc] initWithImageAndFrame:imagef imageName:[NSString stringWithFormat:@"%i%@",i+1,@"_pt.jpg"]];
        [scroll addSubview:AUX];

    }

    self.scrollView = scroll;
    [self.view addSubview:self.scrollView];
}
4

0 に答える 0