zoukankan      html  css  js  c++  java
  • 控件悬停

    #import "ViewController.h"
    
    @interface ViewController () <UIScrollViewDelegate>
    /** 价格view */
    @property (nonatomic, weak) UIView *priceView;
    @property (weak, nonatomic) IBOutlet UISwitch *s;
    @end
    
    @implementation ViewController
    
    static CGFloat const XMGImageH = 100;
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        // 滚动
        UIScrollView *scrollView = [[UIScrollView alloc] init];
        scrollView.frame = CGRectMake(0, 0, self.view.frame.size.width, 400);
        scrollView.backgroundColor = [UIColor redColor];
        scrollView.contentSize = CGSizeMake(0, 600);
        scrollView.delegate = self;
        [self.view addSubview:scrollView];
        
        // 图片
        UIImageView *imageView = [[UIImageView alloc] init];
        imageView.frame = CGRectMake(0, 0, self.view.frame.size.width, XMGImageH);
        imageView.backgroundColor = [UIColor greenColor];
        [scrollView addSubview:imageView];
        
        // 需要悬停的控件
        UIView *priceView = [[UIView alloc] init];
        priceView.frame = CGRectMake(0, XMGImageH, self.view.frame.size.width, 40);
        priceView.backgroundColor = [[UIColor blueColor] colorWithAlphaComponent:0.5];
        [scrollView addSubview:priceView];
        self.priceView = priceView;
        
        UIView *otherView = [[UIView alloc] init];
        otherView.frame = CGRectMake(0, 140, self.view.frame.size.width, 40);
        otherView.backgroundColor = [UIColor yellowColor];
        //[scrollView addSubview:otherView];
    }
    
    #pragma mark - <UIScrollViewDelegate>
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        if (scrollView.contentOffset.y >= XMGImageH) {
            CGRect priceF = self.priceView.frame;
            priceF.origin = CGPointZero;
            self.priceView.frame = priceF;
            
            [self.view addSubview:self.priceView];
            
            // 往上移动多少距离, 开关就完全透明
            CGFloat maxDelta = 20;
            
            // 往上移动的距离
            CGFloat delta = scrollView.contentOffset.y - XMGImageH;
            
            // 减小alpha
            self.s.alpha =  1 - delta / maxDelta;
        } else {
            CGRect priceF = self.priceView.frame;
            priceF.origin.y = XMGImageH;
            self.priceView.frame = priceF;
            
            [scrollView addSubview:self.priceView];
        }
    }
    @end
  • 相关阅读:
    终端安全管理之殇:安全管控能力与用户体验
    一个人的公众号,我写了1w+
    记录一个终端入网小助手的bug
    Window权限维持(十):Netsh Helper DLL
    Window权限维持(九):端口监视器
    Window权限维持(八):时间服务器
    Window权限维持(七):安全支持提供者
    Window权限维持(六):BITS Jobs
    Window权限维持(四):快捷方式修改
    一个有意思的组合漏洞场景
  • 原文地址:https://www.cnblogs.com/developer-ios/p/4934762.html
Copyright © 2011-2022 走看看