【问题标题】:How to change Pagecontroller indicator color from default white?如何将 Pagecontroller 指示器颜色从默认的白色更改?
【发布时间】:2011-01-07 12:24:19
【问题描述】:

http://apptech.next-munich.com/2010/04/customizing-uipagecontrols-looks.html

在上面的 url 中有一些用于自定义 UIPageControl 外观的示例代码...

在我的应用程序中,我想将页面控件指示器(点)颜色更改为其他颜色,而不是默认的白色...我正在按照上面链接中给出的代码进行操作。但是,我有疑问。

NSString* imgActive = [[NSBundlemainBundle] pathForResource:IMG_PAGE_ACTIVE ofType:nil];

NSString* imgInactive = [[NSBundlemainBundle] pathForResource:IMG_PAGE_INACTIVE ofType:nil];

我应该为 pathForResource 提供什么:-------------。我应该在哪里为活动和非活动页面添加图像以及如何将图像检索到应用程序中。

请给我一些想法...

提前致谢

【问题讨论】:

    标签: iphone uipagecontrol


    【解决方案1】:

    只需将这两个图像添加到您的项目资源中。 例如dot_active.pngdot_inactive.png

    NSString* imgActive = [[NSBundlemainBundle] pathForResource:@"dot_active" ofType:@"png"];
    NSString* imgInactive = [[NSBundlemainBundle] pathForResource:@"dot_inactive" ofType:@"png"];
    

    我使用这两张图片:

    表示活动点

    用于非活动点

    编辑

    如果你想修改点的大小,也许

    for (NSUIntegersubviewIndex = 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(/* position and dimensions you need */);
    }
    

    应该可以解决问题。

    【讨论】:

    • @Jilouc:再次怀疑。我怎样才能增加点的大小...请给我一些想法...提前谢谢...
    • 也许如果您在StyledPageControl 中自定义setCurrentPage 方法来修改每个子视图的框架(我已经编辑了答案以显示如何,但我暂时无法测试)
    • Hai jilouc...在这里,为子视图设置框架,我们必须给出 x ,y,宽度和高度位置。我给的是这样的:subview.frame = CGRectMake(30,30, 20,20);但是,我不知道我应该为 x 和 y 位置准确给出什么。滚动之前它显示正确(第一个点具有活动图像,所有其他剩余点具有非活动图像)在滚动到下一页时它不起作用。 ..
    • @jilouc:现在点大小通过这样的给出来增加...subview.frame = CGRectMake(subview.frame.origin.x, subview.frame.origin.y, 10,10) ;但唯一的一个问题是,在我的应用程序中,在单击第一个按钮时,一个视图有 4 个按钮,它转到另一个视图,该视图在此处具有页面控件,页面控件的第一个点具有非活动图像...为什么它显示这样......所有其他页面都可以正常工作......请帮助我jilouc......谢谢......
    • 我无法真正帮助框架更改,因为我没有在我的应用程序中这样做。如果您的第一个点不活动并且不应该,则将当前页面设置为 0。
    猜你喜欢
    • 1970-01-01
    • 2018-02-16
    • 1970-01-01
    • 2012-06-01
    • 2018-05-30
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    相关资源
    最近更新 更多