scrollview
内にカスタムビューを作成する際に問題が発生していますiOS
。画面に追加される画像は1つだけです。これは最後のマップであり、タイトルは1つだけ追加されます。残りは表示されません。4つの画像と4つのテキストが必要です。
私のカスタムクラスはと呼ばれmapview
ます。
私のカスタムビューは次のようになります。
これは、ViewController.mでscrollviewが設定される方法です。
-(void)initialiseScreen
{
NSArray *MapGalleryArray = [[Singleton sharedManager] getMapGalleryItems];
int yOffset = 0;
for (int counter=0; counter < [MapGalleryArray count]; counter++)
{
NSString *imageName = [NSString stringWithFormat:@"%@.JPG",[[MapGalleryArray objectAtIndex:counter] objectForKey:@"Image"]];
UIImage *MapImage = [UIImage imageNamed:imageName];
NSString *titletext = [NSString stringWithFormat:@"%@",[[MapGalleryArray objectAtIndex:counter] objectForKey:@"Title"]];
MapView *map = [[MapView alloc] initWithImage:MapImage label:titletext];
[MapScrollView addSubview:map];
yOffset +=MapScrollView.frame.size.height/MapGalleryArray count];
}
[MapScrollView setContentSize:CGSizeMake(MapScrollView.frame.size.width, yOffset)];
}
MapView.h
@interface MapView : UIView
{
UIButton *mapViewButton;
UILabel *titeLabel;
}
@property(nonatomic,retain) UIButton *mapViewButton;
@property(nonatomic,retain) UILabel *titleLabel;
-(id)initWithImage:(UIImage*)image label:(NSString*)text;
MapView.m
-(id)initWithImage:(UIImage*)image label:(NSString*)text
{
self = [super init];
if (self) {
self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, image.size.width/2, image.size.height/2);
mapViewButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
[mapViewButton setImage:image forState:UIControlStateNormal];
[mapViewButton setImage:image forState:UIControlStateHighlighted];
[mapViewButton addTarget:self action:@selector(ImageButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, mapViewButton.frame.size.width+5, mapViewButton.frame.size.height)];
[titleLabel setText:text];
[self addSubview:mapViewButton];
[self addSubview:titleLabel];
}
return self;
}
私が間違いをしているところでは、これについていくつかのガイダンスが必要です。カスタムビューを作成するのはこれが初めてなので、申し訳ありません。提案へようこそ。