小编Mik*_*ike的帖子

UIScrollView以编程方式设置contentOffset问题

我正在创建一个类似于照片应用的ImageViewer.我有一个PagingScrollView,它是视图控制器的视图(在loadView中创建).这些页面是带有UIImageView子视图的UIScrollViews.一切都工作hunky dory,直到我尝试'跳过'(设置内容偏移)到除第一个之外的索引.如果我跳过说图像'i',则图像被正确显示但是如果用户执行单击操作,则contentOffset将自身重置为显示图像'0'.其他手势(如拖动)不会发生此错误,如果您先执行另一个手势,则不会触摸该错误.

这是我的ImageViewerController的loadView

- (void)loadView
{
    //Make the outer spaging scroll view
    CGRect pagingScrollViewFrame = [self frameForPagingScrollView];
    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:pagingScrollViewFrame];
    scrollView.pagingEnabled = YES;
    scrollView.backgroundColor = [UIColor blackColor];
    scrollView.showsVerticalScrollIndicator = NO;
    scrollView.showsHorizontalScrollIndicator = NO;
    scrollView.contentSize = [self contentSizeForPagingScrollView];
    scrollView.delegate = self;
    self.view = scrollView;
}
Run Code Online (Sandbox Code Playgroud)

这就是我试图设置内容偏移量的方法

#define myView (UIScrollView *)self.view

[myView setContentOffset:[self contentOffsetForIndex:index]];

[..]

- (CGPoint)contentOffsetForIndex:(NSUInteger)index
{
    return CGPointMake((index * (self.view.frame.size.width)), 0);
}
Run Code Online (Sandbox Code Playgroud)

iphone uiscrollview ios

7
推荐指数
1
解决办法
2万
查看次数

动画UIView增长/缩小

我有一个UILabel我希望动画成长和缩小.当尺寸发生变化时,我需要左下角保持静止,以便它始终显示在底部工具栏的正上方.我使用以下代码使标签增长:

[UIView animateWithDuration:kAnimationDuration delay:0.0 options:UIViewAnimationCurveEaseInOut 
                 animations:^{  
    CGFloat lblHeight = 42.0f;
    [label setFrame:CGRectMake(0.0, 
                CGRectGetMaxY(self.view.bounds) - kBottomBarHeight - lblHeight, 
                CGRectGetMaxX(self.view.bounds), 
                lblHeight)];                
} completion:^(BOOL finished) { }];
Run Code Online (Sandbox Code Playgroud)

为了使它缩小我使用相同的逻辑,除了lblHeight设置为17.0f

视图正确增长但是当我尝试缩小它时,帧更改动画不会动画化.它会突然显示新的大小,然后动画到新的原点/位置.我需要将帧更改设置为动画.谁能看到我做错了什么?

iphone animation uiview ios

5
推荐指数
1
解决办法
5752
查看次数

标签 统计

ios ×2

iphone ×2

animation ×1

uiscrollview ×1

uiview ×1