【发布时间】:2014-10-16 23:35:28
【问题描述】:
所以我试图让一些块(称为障碍物)从屏幕顶部掉下来。这可行,但我的代码也将整个视图向下移动...
ViewController.h:
@interface ViewController : UIViewController{
IBOutlet UIImageView * obstacle;
IBOutlet UIImageView * block;
NSTimer * obstacleTimer;
NSTimer * obMoveTimer;
}
-(void)obTimer;
-(void)moveOb;
ViewController.m:
- (void)obTimer{
UIImageView *cloneImageView = [[UIImageView alloc] initWithImage:obstacle.image];
cloneImageView.frame = CGRectMake(0, -20, obstacle.frame.size.width, obstacle.frame.size.height);
cloneImageView.alpha = obstacle.alpha;
cloneImageView.layer.opacity = obstacle.layer.opacity;
cloneImageView.clipsToBounds = obstacle.clipsToBounds;
cloneImageView.backgroundColor = obstacle.backgroundColor;
cloneImageView.tintColor = obstacle.tintColor;
cloneImageView.contentMode = obstacle.contentMode;
cloneImageView.highlighted = obstacle.highlighted;
cloneImageView.opaque = obstacle.opaque;
cloneImageView.userInteractionEnabled = obstacle.userInteractionEnabled;
cloneImageView.multipleTouchEnabled = obstacle.multipleTouchEnabled;
cloneImageView.autoresizesSubviews = obstacle.autoresizesSubviews;
cloneImageView.layer.zPosition = obstacle.layer.zPosition+1;
cloneImageView.tag = numOb + 1;
numOb++;
cloneImageView.hidden = NO;
[obstacle.superview addSubview:cloneImageView];
}
- (void)moveOb{
for (int i = 0; i <= numOb; i++){
UIImageView *viewToAnimate = (UIImageView *)[obstacle.superview viewWithTag:i];
viewToAnimate.center = CGPointMake(viewToAnimate.center.x, viewToAnimate.center.y + 1);
}
}
- (void)viewDidLoad {
obstacleTimer = [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(obTimer) userInfo:nil repeats:YES];
obMoveTimer = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(moveOb) userInfo:nil repeats:YES];
obstacle.hidden = YES;
[super viewDidLoad];
}
所以蓝色块正在下降,整个视图也是如此。这是一张图片:
【问题讨论】:
-
可能是因为
obstacle.superview你为什么用这个?
标签: ios objective-c cocoa-touch uiimageview uikit