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

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

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

【问题讨论】:

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

标签: iphone objective-c interface-builder uipagecontrol


【解决方案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 的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-25
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    相关资源
    最近更新 更多