CoreAnimation----CAScorllLayer

  • 能干嘛?
    你想顯示一個(gè)大圖層里面的一小部分,如:查看大圖片,查看一大段數(shù)據(jù)或者長(zhǎng)文本。
  • 拿啥來(lái)干?
- (void)scrollPoint:(CGPoint)p;  
  • 局限
    能像scrollView滾動(dòng)視圖,但并不能有滾動(dòng)條以及有明確的滾動(dòng)范圍以及其他scrollView的效果( 可能滑動(dòng)過(guò)程中,讓視圖整體滑出視野)

  • 代碼示例
    view繼承的類:
@implementation shapeView

+ (Class)layerClass {
    return [CAScrollLayer class];
}

- (void)setUp {
    self.layer.masksToBounds = YES;
    
    UIPanGestureRecognizer *recognizer = nil;
    recognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
    [self addGestureRecognizer:recognizer];
}

- (id)initWithFrame:(CGRect)frame {
    if((self = [super initWithFrame:frame])) {
        [self setUp];
    }
    return self;
}

- (void)awakeFromNib {
    [self setUp];
}

- (void)pan:(UIPanGestureRecognizer *)recognizer {
    CGPoint offset = self.bounds.origin;
    offset.x -= [recognizer translationInView:self].x;
    offset.y -= [recognizer translationInView:self].y;
    
    [(CAScrollLayer *)self.layer scrollToPoint:offset];
    
    [recognizer setTranslation:CGPointZero inView:self];
}
@end

viewController:

- (void)viewDidLoad {
    [super viewDidLoad];
    
    UIImage *image = [UIImage imageNamed:@"00000"];
    UIImageView *iv = [[UIImageView alloc] initWithImage:image];
    [self.clipView addSubview:iv];  
}

效果圖:

效果圖.png

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容