From 2ca303a445a977efac0f9e4d9a2095f5544ecd9d Mon Sep 17 00:00:00 2001 From: Douglas Hill Date: Thu, 19 Sep 2013 13:14:06 +0100 Subject: [PATCH 1/6] During scrolling, update page number at half-way point between pages. --- SMPageControl.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SMPageControl.m b/SMPageControl.m index 20c5259..ea7b129 100755 --- a/SMPageControl.m +++ b/SMPageControl.m @@ -376,7 +376,7 @@ - (CGSize)sizeThatFits:(CGSize)size - (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; } From 6aa8cadd0766d28b9341e1a297f402f9a67f5c20 Mon Sep 17 00:00:00 2001 From: Douglas Hill Date: Thu, 19 Sep 2013 15:04:41 +0100 Subject: [PATCH 2/6] Make current page adjustable via accessibility. --- SMPageControl.m | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/SMPageControl.m b/SMPageControl.m index ea7b129..9288602 100755 --- a/SMPageControl.m +++ b/SMPageControl.m @@ -93,7 +93,7 @@ - (void)_initialize _verticalAlignment = SMPageControlVerticalAlignmentMiddle; self.isAccessibilityElement = YES; - self.accessibilityTraits = UIAccessibilityTraitUpdatesFrequently; + self.accessibilityTraits = UIAccessibilityTraitUpdatesFrequently | UIAccessibilityTraitAdjustable; self.accessibilityPageControl = [[UIPageControl alloc] init]; } @@ -681,4 +681,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 From 7537f0e06858506dcab3abb28bd6d35f14985509 Mon Sep 17 00:00:00 2001 From: ipaterson Date: Wed, 16 Oct 2013 11:44:17 -0400 Subject: [PATCH 3/6] When the bounds of the page control change, it needs to be redrawn to avoid stretching or compressing the indicators. --- SMPageControl.m | 1 + 1 file changed, 1 insertion(+) diff --git a/SMPageControl.m b/SMPageControl.m index 20c5259..bf390f3 100755 --- a/SMPageControl.m +++ b/SMPageControl.m @@ -95,6 +95,7 @@ - (void)_initialize self.isAccessibilityElement = YES; self.accessibilityTraits = UIAccessibilityTraitUpdatesFrequently; self.accessibilityPageControl = [[UIPageControl alloc] init]; + self.contentMode = UIViewContentModeRedraw; } - (id)initWithFrame:(CGRect)frame From 9da7a3ec72fca13515f56d7b31efaffa80ec9a15 Mon Sep 17 00:00:00 2001 From: James Montgomerie Date: Wed, 8 May 2013 19:02:11 +0100 Subject: [PATCH 4/6] Fix some errors flagged by the compiler. Conflicts: SMPageControl.h --- SMPageControl.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SMPageControl.m b/SMPageControl.m index 7492ece..b66be30 100755 --- a/SMPageControl.m +++ b/SMPageControl.m @@ -150,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) { @@ -298,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]; From d3d2b20a75cd643024d0ddc715b5938034ce1f73 Mon Sep 17 00:00:00 2001 From: James Montgomerie Date: Tue, 10 Dec 2013 16:26:19 +0000 Subject: [PATCH 5/6] Fix 64-bit warning. --- SMPageControl.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SMPageControl.m b/SMPageControl.m index b66be30..b0eb1fa 100755 --- a/SMPageControl.m +++ b/SMPageControl.m @@ -422,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); From dce24e6cbd4207f0d5e8b94ab00f769a0efebbf6 Mon Sep 17 00:00:00 2001 From: Jerry Jones Date: Fri, 13 Dec 2013 08:22:22 -0800 Subject: [PATCH 6/6] Bump version to 1.2 --- SMPageControl.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SMPageControl.podspec b/SMPageControl.podspec index 1a008a6..7fab8a1 100644 --- a/SMPageControl.podspec +++ b/SMPageControl.podspec @@ -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, @@ -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}'