Reputation: 2636
Hi i am animating 4 images in UIImageView
by the following code.
But the problem is image is not appearing in UIImageView. If i try removal of swipeImage code then image is appearing in UIImageView. How to make imageview appear in UIImageView ?
Oulet had made to UIImageView property, if i try to set image without animation code, UIImageView has image. Withanimation, UIImageView has no appearance of image. Thanks in advance for any help.
Property
@property (weak , nonatomic )IBOutlet UIImageView *imgslide;
Declaration
int scrlNo;
NSTimer *aTimer;
View did load code
scrlNo = 0;
imgslide.userInteractionEnabled = YES;
[self addGestures];
[self SwipeImages];
Add gesture code
-(void)addGestures //Adding Single Tap Gesture here
{
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageViewTap:)]; //init the TapGesture with the selector
singleTap.cancelsTouchesInView = YES;
[imgslide addGestureRecognizer:singleTap]; //Add it to imgslide, not to self.view
}
ImageViewTap code
-(void)imageViewTap :(UITapGestureRecognizer *) gesture
{
NSLog(@"Clicked image %d", scrlNo);
}
Swipe Images Code or animation code
- (void)SwipeImages
{
if (scrlNo==1) {
imgslide.image = [UIImage imageNamed:@"promo_banner_2.png"];
scrlNo=2;
[aTimer invalidate];
aTimer = nil;
aTimer=[NSTimer scheduledTimerWithTimeInterval:15
target:self
selector:@selector(SwipeImages)
userInfo:nil
repeats:YES];
}else if (scrlNo==0) {
// UIImage * img = [UIImage imageNamed:@"promo_banner_1.png"];
//
// [self.imageViewOutlet setImage:img];
imgslide.image = [UIImage imageNamed:@"promo_banner_1.png"];
scrlNo=1;
[aTimer invalidate];
aTimer = nil;
aTimer=[NSTimer scheduledTimerWithTimeInterval:15
target:self
selector:@selector(SwipeImages)
userInfo:nil
repeats:YES];
}
else if (scrlNo==2) {
// UIImage * img = [UIImage imageNamed:@"promo_banner_3.png"];
//
// [self.imageViewOutlet setImage:img];
imgslide.image = [UIImage imageNamed:@"promo_banner_3.png"];
scrlNo=3;
[aTimer invalidate];
aTimer = nil;
aTimer=[NSTimer scheduledTimerWithTimeInterval:15
target:self
selector:@selector(SwipeImages)
userInfo:nil
repeats:YES];
}
else if (scrlNo==3) {
//
// UIImage * img = [UIImage imageNamed:@"promo_banner_7.png"];
//
// [self.imageViewOutlet setImage:img];
imgslide.image = [UIImage imageNamed:@"promo_banner_7.png"];
scrlNo=0;
[aTimer invalidate];
aTimer = nil;
aTimer=[NSTimer scheduledTimerWithTimeInterval:15
target:self
selector:@selector(SwipeImages)
userInfo:nil
repeats:YES];
}
else if (scrlNo==4) {
}
}
Upvotes: 1
Views: 332
Reputation: 2897
Add this method & load this method on viewDidLoad
instead of loading SwipeImages
on viewDidLoad
-(void)addTimer
{
aTimer=[NSTimer scheduledTimerWithTimeInterval:15
target:self
selector:@selector(SwipeImages)
userInfo:nil
repeats:YES];
}
Then your viewDidLoad looks like
scrlNo = 0;
imgslide.userInteractionEnabled = YES;
[self addGestures];
[self addTimer];
And Edit SwipeImages to this,
- (void)SwipeImages
{
if (scrlNo==1) {
imgslide.image = [UIImage imageNamed:@"promo_banner_2.png"];
scrlNo=2;
}else if (scrlNo==0) {
imgslide.image = [UIImage imageNamed:@"promo_banner_1.png"];
scrlNo=1;
}
else if (scrlNo==2) {
imgslide.image = [UIImage imageNamed:@"promo_banner_3.png"];
scrlNo=3;
}
else if (scrlNo==3) {
imgslide.image = [UIImage imageNamed:@"promo_banner_7.png"];
scrlNo=0;
}
else if (scrlNo==4) {
}
}
Upvotes: 1