1

ScrollViewを介して画像を追加しようとしています。plistファイルにxポイントとyポイントがあり、それらは列挙型によって呼び出されます。

enum {
    kLogoImage = 1,
    kNewLogoImage,
};


@implementation

- (void) _setupStaticViews
{
    UIButton *image = [UIButton buttonWithType:UIButtonTypeCustom];
    [image setBackgroundImage:[UIImage imageNamed:@"logo.png"] forState:UIControlStateNormal];
    [image addTarget:self action:@selector(_addContactButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
    image.frame = CGRectMake(0.0 ,0.0, 150.0, 150.0);
    image.tag = kLogoImage;
    [_mapImageView addSubview:image];
    _staticViews = @[image]; 


    UIButton *image2 = [UIButton buttonWithType:UIButtonTypeCustom];
    [image2 setBackgroundImage:[UIImage imageNamed:@"Time Bakground.png"] forState:UIControlStateNormal];
    [image2 addTarget:self action:@selector(_addContactButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
    image2.frame = CGRectMake(0.0 ,0.0, 250.0, 150.0);
    image2.tag = kNewLogoImage;
    [_mapImageView addSubview:image2];
    _staticViews = @[image2];


    for ( UIView *view in _staticViews ) {
        CGPoint point = [self _basePositionForView:view];
        CGRect frame = view.frame;
        frame.origin = point;
        view.frame = frame;

    }
}

画像のみを表示している場合は、正常に機能します。しかし、複数追加する必要があり、2つ目を追加すると、最初の1つがxyポイント0,0になり、Image2が表示されなくなります。別の画像を追加するにはどうすればよいですか?


- (CGPoint) _basePositionForView:(UIView *)view {
    NSString *key = [NSString stringWithFormat:@"%d", view.tag];
    NSString *stringValue = [_coordinates objectForKey:key];
    NSArray *values = [stringValue componentsSeparatedByString:@":"];

    if ( [values count] < 2 ) return CGPointZero;

    CGPoint result = CGPointMake([[values objectAtIndex:0] floatValue], [[values objectAtIndex:1] floatValue]);
    return result;
}

4

2 に答える 2

1

私はあなたが最初に作ることに気づきました

_staticViews = @[image]; 

以降

_staticViews = @[image2];

あなたはむしろ持っているつもりではありませんか

_staticViews = @[image, image2];

于 2012-11-19T21:15:51.337 に答える
0

フレーム内でxを繰り返し、それに応じて変更する必要があります。

for ( int iterator=0; iterator< [[_staticViews subviews] count]; iterator++){
...     
current_image.frame = CGRectMake(YOUR_IMG_WIDTH * iterator ,0.0, YOUR_IMG_WIDTH, 150.0);
...}
于 2012-11-19T20:36:58.807 に答える