我经常需要显示带有可以缩放的图像的uiscrollview。这是我在任何特定应用程序中使用的许多其他滚动视图之上。
我想把它分解成我自己的类,我可以实例化类似:
CustomScrollView *scr = [CustomScrollView alloc] init];
scr.image = [UIImage imageNamed:@"myImage.png"];
scr.doesPinchZoom = YES;
CustomScrollView应该创建一个uiscrollview,里面有一个允许捏合和缩放的图像。
这也有自己的关闭按钮以删除所述的scrollview。 我的代码现在甚至无法创建滚动视图。
@interface CustomScrollView () <UIScrollViewDelegate>
@property (nonatomic, strong, readonly) UIScrollView *scrollView;
@end
@implementation CustomScrollView
@synthesize scrollView = _scrollView;
- (UIScrollView *)scrollView {
if (nil == _scrollView) {
_scrollView = [[UIScrollView alloc] initWithFrame:self.bounds];
_scrollView.delegate = self;
[_scrollView setBackgroundColor:[UIColor redColor]];
[self addSubview:_scrollView];
NSLog(@"scrollview");
}
return _scrollView;
}
沿着这条路前进的方向是什么?或者甚至只是让滚动视图显示出来...... 当我使用上面的alloc实例化它时,scrollview甚至不会出现在我的视图控制器中。
答案 0 :(得分:1)
我不知道你发布的代码是否应该是你的.h / .m文件的组合,但不管我相信,除非我误解你,你正试图建立一个子类UIScrollView对象。您绝对可以这样做来自定义UIScrollView并在许多情况下使其可重用。
如果您为子类CustomScrollView命名,示例头文件将如下所示:
//
// CustomScrollView.h
//
#import <UIKit/UIKit.h>
@interface CustomScrollView : UIScrollView
@property (strong, nonatomic) UIImageView *theImage;
@end
您的实施文件:
//
// CustomScrollView.m
#import "CustomScrollView.h"
@implementation CustomScrollView
@synthesize theImage;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
theImage = nil;
}
return self;
}
-(void)setTheImage:(UIImageView*)image{
theImage = image;
[self addSubview:theImage];
}
@end
然后,您可以在以下任何地方使用新的自定义ScrollView:
CustomScrollView *cSV = [[CustomScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 568)];
cSV.delegate = self;
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
imageView.image = [UIImage imageNamed:@"yourPic.png"];
[cSV setTheImage:imageView];
[self.view addSubview:cSV];
(我做了随机帧,你可以把它们设置成你想要的)
从那里你可以创建类方法来完成你想做的其他事情
希望这在某种程度上有所帮助