滚动uiscrollview时淡出UITextView

时间:2014-10-27 10:34:42

标签: ios objective-c iphone uiscrollview

我有一个包含UIImageviews的UIScrollView,它包含在以编程方式创建的UIScrollViews中。 在主UIScrollView里面,我有一个UITextView,它会根据在各种uiimageviews之间滚动时显示的图像视图来改变它的内容。我想相应于滚动的UIScrollView的位置减少显示UITextView的alpha。
例如如果用户在从一组uiimageviews移动到另一组uiimageviews的同时处于滚动过程的一半,则uitextview的alpha应为0.5。任何想法我怎样才能达到这个结果?

1 个答案:

答案 0 :(得分:4)

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
 CGFloat offset = scrollView.contentOffset.x; // here you will get the offset value
 CGFloat value = offset / totalcontentsize;
 // use 'value' for setting the textview alpha value
}

我只是添加逻辑如何接近。

或者您可以使用类别。在UIView上创建一个名为UIView + Looks的类别

@interface UIView (Looks)
-(void)fadeTail;
@end

@implementation UIView (Looks)
-(void)fadeTail
    {
    // it's used to fade away the bottom,
    // perhaps of a slab of text, web view or similar

    CAGradientLayer *gradient = [CAGradientLayer layer];
    gradient.frame = self.bounds;
    gradient.colors = @[
        (id)[[UIColor whiteColor] CGColor],
        (id)[[UIColor clearColor] CGColor]
        ];
    gradient.startPoint = CGPointMake(0.5, 0.93);
    gradient.endPoint = CGPointMake(0.5, 1);

    [self.layer setMask:gradient];
    }
@end

示例用法(在本例中为Web视图

@property (strong) IBOutlet UIWebView *dossierBlock;
-(void)_fillMainArea
    {
    [self _loadBookImage];

    NSString *longHtml = CLOUD.caMeeting[@"yourJsonTag"];
    nullsafe(longHtml);

    [self.dossierBlock longHtml baseURL:nil];
    [self.dossierBlock fadeTail];
    }

你可以轻而易举地制作一个" fadeTop"以同样的方式。