如何更改 UIPageControl 点 [重复]

Posted

技术标签:

【中文标题】如何更改 UIPageControl 点 [重复]【英文标题】:How to change UIPageControl dots [duplicate] 【发布时间】:2010-04-20 09:04:48 【问题描述】:

我看到应用程序(例如 meebo)在 UIPageControls 上有不同的指示器,而不是默认的白色圆圈。

有没有简单的方法来做到这一点?我已经阅读了 UIPageControls 的文档,似乎没有替换图像的方法。

【问题讨论】:

HHPageControl 这不是另一个问题的欺骗:这里我们想知道如何改变点;链接的“欺骗”只是想改变颜色。我的解决方案附在 Aragon 的下面。 由于这个“欺骗”不再接受答案,我将评论另一个解决方案。如果您只想更改点的大小,可以使用 pagecontrol.transform = CGAffineTransformMakeScale(2, 2); 【参考方案1】:

您可以通过以下步骤来实现:

1- 创建一个继承自 UIPageControl 的自定义类。

2- 将此类分配给您要更改其点的所需 UIPageControl。

3- 将以下代码放入您的自定义 UIPageControl 类中。

把这个放到customClass.m文件中:

-(id)initWithCoder:(NSCoder *)aDecoder

    self = [super initWithCoder:aDecoder];
    if(self)
    
        activeImage = [UIImage imageNamed:@"active_dot.png"];
        inactiveImage = [UIImage imageNamed:@"inactive_dot.png"];
    
    return self;


-(void)updateDots

    for (int i = 0; i < [self.subviews count]; i++)
    
        UIImageView* dot = [self.subviews objectAtIndex:i];
        dot.frame = CGRectMake(dot.frame.origin.x, dot.frame.origin.y, 14, 14.5);
        if (i == self.currentPage)
            dot.image = activeImage;
        else
            dot.image = inactiveImage;
    


-(void)setCurrentPage:(NSInteger)page

    [super setCurrentPage:page];
    [self updateDots];

把这个放到customClass.h文件中


    UIImage* activeImage;
    UIImage* inactiveImage;

@property(nonatomic, retain) UIImage* activeImage;
@property(nonatomic, retain) UIImage* inactiveImage;

5- 只需将 UIPageControl 的当前页面设置在您将页面控件放入其中的类中,使用以下行:

[self.pageControl setCurrentPage:number];

记得在 viewDidLoad() 方法中设置当前页面在 UIPageControl 所在的视图中。

当视图加载时,UIPageControl 图像将被设置。

【讨论】:

点是ios7中的UIView对象,需要更新代码。 我已经更新了 Aragon 的 updateDots: 方法的代码以支持 iOS 7。请参阅下面的答案。 诅咒,答案已关闭,尽管我更喜欢这个解决方案,而不是链接页面上的那个被认为是骗子的解决方案。简单地说,PageControl 的子视图是 UIView,所以我将 UIImageView 注入其中: -(void)updateDots for (int i = 0; i Aragon 的回答结合 Aaron Vegh 的评论是一个可行的解决方案。【参考方案2】:

没有用于更改图像的公共 API。您可以查看this blog post,它描述了一种自定义UIPageControl 的方法。

【讨论】:

以上是关于如何更改 UIPageControl 点 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 UIPageControl 点的边框?

UIPageControl 指示点在页面更改时不会更改

UIPageControl 更改 UIWebView 的 URL

uipagecontrol 指示器(点)问题

如何更改 UIPageControl 的高度?

如何用每页不同的颜色更改 UIPageControl 中分页点的颜色