iphone - uipagecontrol指示器(点)问题

标签 iphone uipagecontrol

大家好...

我想更改 uipagecontroller 指示器(点)颜色...为此,我正在执行以下步骤。

使用 2 个方法创建名为 PageControl 的新类

1.- (void) setCurrentPage:(NSInteger)page

2.- (void) setNumberOfPages:(NSInteger)pages

- (void) setCurrentPage:(NSInteger)page 
{
    NSLog(@"setCurrentPage");
    [super setCurrentPage:page];
    NSString* imgActive = [[NSBundle mainBundle] pathForResource:@"activeimage" ofType:@"png"];
    NSString* imgInactive = [[NSBundle mainBundle] pathForResource:@"inactive" ofType:@"png"];
    for (NSUInteger subviewIndex = 0; subviewIndex < [self.subviews count]; subviewIndex++)
    {
        UIImageView* subview= [self.subviews objectAtIndex:subviewIndex];

        if (subviewIndex == page) 
            [subview setImage:[UIImage imageWithContentsOfFile:imgActive]];          
        else
            [subview setImage:[UIImage imageWithContentsOfFile:imgInactive]];           

        subview.frame = CGRectMake(subview.frame.origin.x, subview.frame.origin.y, 10,10);
    }
}


- (void) setNumberOfPages:(NSInteger)pages 
{
    NSLog(@"setNumberOfPages");
    [super setNumberOfPages:pages];
    NSString* img = [[NSBundle mainBundle] pathForResource:@"inactive" ofType:@"png"];
    for (NSUInteger subviewIndex = 0; subviewIndex < [self.subviews count]; subviewIndex++)
    {
        UIImageView* subview= [self.subviews objectAtIndex:subviewIndex];            
        [subview setImage:[UIImage imageWithContentsOfFile:img]];        
        subview.frame = CGRectMake(subview.frame.origin.x, subview.frame.origin.y, 10,10);
    }
}

我已经有了一个带有页面控制和 ScrollView 的 View ...这里我正在做的是从 nib 中选择 uipagecontroller 并选择身份检查器并选择类名 PageControl(带有 2 种方法的新创建的类)它适用于滑动图像时更改颜色,但是,它不适用于单击页面控件以移至下一页...

我不知道我应该包含什么或者我犯了什么错误...请帮助我做到这一点...

谢谢...

最佳答案

如果您想在点击点时启用页面滚动,那么您需要首先将 xib 文件中的“值已更改”属性与您在代码中设置的操作相关联。

我已经在我的一个项目中实现了相同的功能,因此它肯定会起作用。

- (IBAction)changePage:(id)sender {
int page = pageControl.currentPage;
CGFloat pageWidth = scrollView.frame.size.width;

pageWidth = scrollView.frame.size.width;
pageControl.currentPage = page;

CGRect frame = scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
[scrollView scrollRectToVisible:frame animated:YES];

// Set the boolean used when scrolls originate from the UIPageControl. See scrollViewDidScroll: above.

}

干杯

关于iphone - uipagecontrol指示器(点)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4645031/

相关文章:

iphone - iOS 中的语音转文本应用程序?

iphone - NSUserDefaults 记住 View

iphone - 加载和卸载消息

swift - 页面控件中的多个 UILabel

ios - 在没有 UIScrollView 的情况下使用 UIPageControl

ios - 如何在 iOS 7 中创建分页

iphone - IOS内购非消耗品上架后可以修改吗?

iphone - 在 CATiledLayer 上高效绘制 CGPath

ios - 使用单词而不是点的自定义页面控件 - Swift

ios - 尝试将苹果的页面控件示例合并到 Storyboard View Controller 中