Skip to content
23 changes: 18 additions & 5 deletions SMPageControl.m
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,9 @@ - (void)_initialize
_verticalAlignment = SMPageControlVerticalAlignmentMiddle;

self.isAccessibilityElement = YES;
self.accessibilityTraits = UIAccessibilityTraitUpdatesFrequently;
self.accessibilityTraits = UIAccessibilityTraitUpdatesFrequently | UIAccessibilityTraitAdjustable;
self.accessibilityPageControl = [[UIPageControl alloc] init];
self.contentMode = UIViewContentModeRedraw;
}

- (id)initWithFrame:(CGRect)frame
Expand Down Expand Up @@ -149,7 +150,7 @@ - (void)_renderPages:(CGContextRef)context rect:(CGRect)rect
CGImageRef maskingImage = nil;
CGSize maskSize = CGSizeZero;

for (NSUInteger i = 0; i < _numberOfPages; i++) {
for (NSInteger i = 0; i < _numberOfPages; i++) {
NSNumber *indexNumber = @(i);

if (i == _displayedPage) {
Expand Down Expand Up @@ -297,7 +298,7 @@ - (void)_setImage:(UIImage *)image forPage:(NSInteger)pageIndex type:(SMPageCont
}
}

- (void)setImage:(UIImage *)image forPage:(NSInteger)pageIndex;
- (void)setImage:(UIImage *)image forPage:(NSInteger)pageIndex
{
[self _setImage:image forPage:pageIndex type:SMPageControlImageTypeNormal];
[self _updateMeasuredIndicatorSizes];
Expand Down Expand Up @@ -385,7 +386,7 @@ - (CGSize)intrinsicContentSize

- (void)updatePageNumberForScrollView:(UIScrollView *)scrollView
{
NSInteger page = (int)floorf(scrollView.contentOffset.x / scrollView.bounds.size.width);
NSInteger page = (NSInteger)roundf(scrollView.contentOffset.x / scrollView.bounds.size.width);
self.currentPage = page;
}

Expand Down Expand Up @@ -421,7 +422,7 @@ - (CGImageRef)createMaskForImage:(UIImage *)image CF_RETURNS_RETAINED
{
size_t pixelsWide = image.size.width * image.scale;
size_t pixelsHigh = image.size.height * image.scale;
int bitmapBytesPerRow = (pixelsWide * 1);
size_t bitmapBytesPerRow = (pixelsWide * 1);
CGContextRef context = CGBitmapContextCreate(NULL, pixelsWide, pixelsHigh, CGImageGetBitsPerComponent(image.CGImage), bitmapBytesPerRow, NULL, (CGBitmapInfo)kCGImageAlphaOnly);
CGContextTranslateCTM(context, 0.f, pixelsHigh);
CGContextScaleCTM(context, 1.0f, -1.0f);
Expand Down Expand Up @@ -723,4 +724,16 @@ - (void)updateAccessibilityValue
}
}

#pragma mark - UIAccessibilityAction

- (void)accessibilityIncrement
{
[self setCurrentPage:self.currentPage + 1 sendEvent:YES canDefer:NO];
}

- (void)accessibilityDecrement
{
[self setCurrentPage:self.currentPage - 1 sendEvent:YES canDefer:NO];
}

@end
4 changes: 2 additions & 2 deletions SMPageControl.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "SMPageControl"
s.version = "1.1"
s.version = "1.2"
s.summary = "UIPageControl’s fancy one-upping cousin."
s.description = <<-DESC
Designers love to make beautifully custom page controls that fit in with all the wood,
Expand Down Expand Up @@ -35,7 +35,7 @@ Pod::Spec.new do |s|
s.author = { "Jerry Jones" => "jerry@spacemanlabs.com" }
s.source = {
:git => "https://github.com/Spaceman-Labs/SMPageControl.git",
:tag => "1.1"
:tag => "1.2"
}
s.platform = :ios, '5.0'
s.source_files = 'SMPageControl.{h,m}'
Expand Down