다음 이미지와 이전 이미지를 보려면 두 개의 버튼이있는 간단한 이미지 브라우저를 만들었습니다. 범위 초과 NSArray 인덱스
#import "ViewController.h"
@interface ViewController()
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (strong, nonatomic) NSArray *images;
@property (assign, nonatomic) NSInteger imageIndex;
@property (strong, nonatomic) UIBarButtonItem *nextButton;
@property (strong, nonatomic) UIBarButtonItem *prevButon;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Adding Next and Previous buttons
self.nextButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"next"] style:UIBarButtonItemStylePlain target:self action:@selector(nextButtonPressed)];
self.prevButon = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"previous"] style:UIBarButtonItemStylePlain target:self action:@selector(previousButtonPressed)];
self.navigationItem.rightBarButtonItems = @[self.nextButton, self.prevButon];
// Loading images
self.images = @[
[UIImage imageNamed:@"1"],
[UIImage imageNamed:@"2"],
[UIImage imageNamed:@"3"],
[UIImage imageNamed:@"4"],
[UIImage imageNamed:@"5"],
[UIImage imageNamed:@"6"],
[UIImage imageNamed:@"7"],
[UIImage imageNamed:@"8"],
[UIImage imageNamed:@"9"]
];
self.imageIndex = 0;
self.imageView.image = self.images[self.imageIndex];
}
- (void)nextButtonPressed
{
self.imageIndex++;
self.imageView.image = self.images[self.imageIndex];
}
- (void)previousButtonPressed
{
self.imageIndex--;
self.imageView.image = self.images[self.imageIndex];
}
@end
내 문제는 말을한다.
어떻게 이런 일이 일어나지 않게 할 수 있습니까?
감사합니다.
빠른 답변 감사합니다. 귀하의 솔루션은 완벽하게 작동합니다. 배열의 끝 부분에 도달했을 때 단추를 비활성화하는 방법을 알려주시겠습니까? – Isuru
가장 간단한 방법은 "layoutButtons' 메서드를 만드는 것입니다.이 메서드는 배열의 끝에 도달하면 버튼을 비활성화합니다. ''nextButtonPressed''와''previousButtonPressed''를 호출 할 때마다, 그리고 초기 상태에 대한''viewDidLoad''의 끝에서이 메소드를 호출하십시오. –