BUG一:UIPageControl
不顯示
之前好端端的UIPageControl
到了iOS14
突然就不顯示了表示很郁悶??
解決方案
1、按照系統(tǒng)規(guī)則適配pageControl size
size = CGSizeMake(_imagesArray.count * 10 * 1.5, 10);
if (@available(iOS 14.0, *)) {
UIPageControl *pageControl = (UIPageControl *)_pageControl;
size.width = [pageControl sizeForNumberOfPages:_imagesArray.count].width;
}
_pageControl.frame = xxxx;
2娩井、添加約束適配(或者使用第三方添加約束)
size = CGSizeMake(_imagesArray.count * 10 * 1.5, 10);
self.pageControl.translatesAutoresizingMaskIntoConstraints = NO;
[[self.pageControl.bottomAnchor constraintEqualToAnchor:self.bottomAnchor
constant:-_pageControlBottomOffset] setActive:YES];
[[self.pageControl.heightAnchor constraintEqualToConstant:size.height] setActive:YES];
if (_pageControlAliment == YXCycleScrollViewPageContolAlimentRight) {
[[self.pageControl.rightAnchor constraintEqualToAnchor:self.rightAnchor
constant:-_pageControlRightOffset] setActive:YES];
} else{
[[self.pageControl.centerXAnchor constraintEqualToAnchor:self.centerXAnchor] setActive:YES];
}
BUG二:collectionView scrollToItemAtIndexPath
失效
這里失效的原因是對UICollectionView
設(shè)置了分頁屬性pagingEnabled
導(dǎo)致的,所以方案一我們可以關(guān)閉分頁效果翔悠。
- 方案二:用下面的方法替代(或者根據(jù)
Item
大小來自己計(jì)算contentOffset
)
UICollectionViewLayoutAttributes *attributes = [_collectionView layoutAttributesForItemAtIndexPath:[NSIndexPath indexPathForItem:targetIndex inSection:0]];
_collectionView.contentOffset = CGPointMake(attributes.frame.origin.x - _itemSpacing, 0);