iPhone에서 내 기본 응용 프로그램의 UIPageControl을 사용하여 검색을 수행 할 수있는 첫 번째 페이지의 점 대신 확대경 아이콘을 추가하는 방법이 있습니까?UIPageControl 검색 페이지의 점
나는 Google을 시도했지만 비슷한 질문을 찾지 못했지만 Apple 응용 프로그램의 광범위한 기능처럼 보입니다.
아무도 도와 줄 수 있습니까?
iPhone에서 내 기본 응용 프로그램의 UIPageControl을 사용하여 검색을 수행 할 수있는 첫 번째 페이지의 점 대신 확대경 아이콘을 추가하는 방법이 있습니까?UIPageControl 검색 페이지의 점
나는 Google을 시도했지만 비슷한 질문을 찾지 못했지만 Apple 응용 프로그램의 광범위한 기능처럼 보입니다.
아무도 도와 줄 수 있습니까?
기본적으로 UIPageControl에는 각 점에 대한 UIView가 포함 된 _indicators
배열이 있습니다. 이 배열은 비공개 속성이므로 혼동하지 않아야합니다. 사용자 정의 아이콘이 필요하면 자신의 페이지 표시기 구현을 수행해야합니다.
편집 : 좀 더 조사한 후에 UIPageControl 하위보기를 대체하여 도트 이미지를 사용자 지정할 수 있습니다. 자세한 내용은 http://www.onidev.com/2009/12/02/customisable-uipagecontrol/을 확인하십시오. 그러나 애플 리뷰어가 그런 일을하는 것에 대해 어떻게 느끼는지 확실하지 않습니다.
나는이를 쉽고 합법적으로 (비공개 API없이) 구현하기 위해 UIPageControl 서브 클래스를 만들었습니다. 기본적으로 setNumberOfPages를 덮어 씁니다. UIImageView에 마지막 원 안의 아이콘을 삽입하십시오. 그런 다음 UICageView의 상태를 수정하고 UIPageControl 비공개 API에 의해 자동으로 업데이트되므로 원의 배경색을 지우려면 마지막 페이지가 강조 표시되는지 아닌지를 setCurrentPage : 메소드에서 감지합니다. 답변에 대한
@interface EPCPageControl : UIPageControl
@property (nonatomic) UIImage *lastPageImage;
@end
@implementation EPCPageControl
- (void)setNumberOfPages:(NSInteger)pages
{
[super setNumberOfPages:pages];
if (pages > 0) {
UIView *indicator = [self.subviews lastObject];
indicator.backgroundColor = [UIColor clearColor];
if (indicator.subviews.count == 0) {
UIImageView *icon = [[UIImageView alloc] initWithImage:self.lastPageImage];
icon.alpha = 0.5;
icon.tag = 99;
[indicator addSubview:icon];
}
}
}
- (void)setCurrentPage:(NSInteger)page
{
[super setCurrentPage:page];
if (self.numberOfPages > 1 && self.lastPageImage) {
UIView *indicator = [self.subviews lastObject];
indicator.backgroundColor = [UIColor clearColor];
UIImageView *icon = (UIImageView *)[indicator viewWithTag:99];
icon.alpha = (page > 1 && page == self.numberOfPages-1) ? 1.0 : 0.5;
}
}
감사합니다. 이것은 나를 많이 도왔다. 나는 그것을 다른 접근법보다 훨씬 깨끗하게 발견했습니다! – kekub
감사 :
이 코드입니다 :
다음은 결과입니다! 나는 마지막으로 이것이 이렇게되지 않을 것이라고 기대했다. -/ – Denis
UIPageControl의 하위 아이콘 인 검색 아이콘 위에 하위보기를 추가하여 목표를 달성했다 (배치 알고리즘을 찾기 위해 시간을 투자해야했다) . 필요에 따라 작동합니다. 어쨌든, 나는 상자 밖으로이 사용자 화를 허용하지 않기 때문에 애플 측에 작은 비난을 보내야한다. – Denis
우리는 문제없이 제공 한 링크에 설명 된 기술을 사용하여 앱을 제출했습니다. – hennes