UIScrollView에 세 개의 이미지 (현재 두 번째 UIImages와 UIColor가 아직 세 번째 그래픽을받지 못했음)가 표시되어 있는데 UIPageControl을 추가하려고했지만 몇 가지 문제가 있습니다.UIScrollView 위에 UIPageControl 넣기
UIPageControl은 투명 배경 (IB에서 충분히 쉽다)을 가져야하며, UIScrollView 위에 앉아 사용자가 어느 페이지에 있는지 표시해야합니다.
첫 번째 문제는 UIPageControl이 UIScrollView 뒤에 있다는 점입니다. 두 번째 문제는 첫 번째 페이지로 이동하여 두 번째 시도 (두 번째 텍스트로 나가면 텍스트 뒤에 표시됨)로 이동한다는 것입니다. 세 번째 문제는 사용자가 어떤 페이지를 표시하는지 알 수 없다는 것입니다 (두 번째 문제로 인해 볼 수는 없지만).
저는 XCode에 상당히 익숙하지만 그래서 나는 완전한 아마추어가 아니에요. 나는 잠시 동안 이것에 대한 해결책을 찾고 있었고 다른 것을 찾을 수없는 것처럼 보였다. 죄송합니다.이 질문이 전에 나오면 저를 찾지 못할 것입니다!
HomeViewController.h
#import <UIKit/UIKit.h>
@interface HomeViewController : UIViewController {
UIScrollView *scrollView;
UIPageControl *pageControl;
}
@property (nonatomic, retain) IBOutlet UIScrollView *scrollView;
@property (nonatomic, retain) IBOutlet UIPageControl *pageControl;
@end
HomeViewController.m
#import "HomeViewController.h"
@implementation HomeViewController
@synthesize scrollView;
@synthesize pageControl;
- (void)viewDidLoad
{
[super viewDidLoad];
NSArray *colors = [NSArray arrayWithObjects:[UIColor colorWithPatternImage:[UIImage imageNamed:@"SuperflyPoster_1.jpg"]], [UIColor colorWithPatternImage:[UIImage imageNamed:@"SuperflyPoster_2.jpg"]], [UIColor blueColor], nil];
for (int i = 0; i < colors.count; i++) {
CGRect frame = scrollView.frame;
frame.origin.x = frame.size.width *i;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
UIView *subview = [[UIView alloc] initWithFrame:frame];
subview.backgroundColor = [colors objectAtIndex:i];
[self.scrollView addSubview:subview];
[subview release];
}
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width *colors.count, self.scrollView.frame.size.height);
}
- (void)scrollViewDidScroll:(UIScrollView *)sender
{
// Update the page when more than 50% of the previous/next page is visible
CGFloat pageWidth = self.scrollView.frame.size.width;
int page = floor((self.scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1;
self.pageControl.currentPage = page;
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
self.scrollView = nil;
}
- (void)dealloc {
[pageControl release];
[scrollView release];
[super dealloc];
}
@end
많은 감사 :
여기 내 코드입니다.