zoukankan      html  css  js  c++  java
  • 在控制器上加一个遮盖

    先见一个遮盖类

    1.h文件

    #import <UIKit/UIKit.h>

    CGPoint CGRectGetCenter(CGRect rect);

    CGRect  CGRectMoveToCenter(CGRect rect, CGPoint center);

    @interface UIView (ViewFrameGeometry)

    @property CGPoint origin;

    @property CGSize size;

    @property (readonly) CGPoint bottomLeft;

    @property (readonly) CGPoint bottomRight;

    @property (readonly) CGPoint topRight;

    @property CGFloat height;

    @property CGFloat width;

    @property CGFloat top;

    @property CGFloat left;

    @property CGFloat bottom;

    @property CGFloat right;

    - (void) moveBy: (CGPoint) delta;

    - (void) scaleBy: (CGFloat) scaleFactor;

    - (void) fitInSize: (CGSize) aSize;

    @end

    2.m文件

    #import "UIViewExt.h"

    CGPoint CGRectGetCenter(CGRect rect)

    {

        CGPoint pt;

        pt.x = CGRectGetMidX(rect);

        pt.y = CGRectGetMidY(rect);

        return pt;

    }

    CGRect CGRectMoveToCenter(CGRect rect, CGPoint center)

    {

        CGRect newrect = CGRectZero;

        newrect.origin.x = center.x-CGRectGetMidX(rect);

        newrect.origin.y = center.y-CGRectGetMidY(rect);

        newrect.size = rect.size;

        return newrect;

    }

    @implementation UIView (ViewGeometry)

    // Retrieve and set the origin

    - (CGPoint) origin

    {

    return self.frame.origin;

    }

    - (void) setOrigin: (CGPoint) aPoint

    {

    CGRect newframe = self.frame;

    newframe.origin = aPoint;

    self.frame = newframe;

    }

    // Retrieve and set the size

    - (CGSize) size

    {

    return self.frame.size;

    }

    - (void) setSize: (CGSize) aSize

    {

    CGRect newframe = self.frame;

    newframe.size = aSize;

    self.frame = newframe;

    }

    // Query other frame locations

    - (CGPoint) bottomRight

    {

    CGFloat x = self.frame.origin.x + self.frame.size.width;

    CGFloat y = self.frame.origin.y + self.frame.size.height;

    return CGPointMake(x, y);

    }

    - (CGPoint) bottomLeft

    {

    CGFloat x = self.frame.origin.x;

    CGFloat y = self.frame.origin.y + self.frame.size.height;

    return CGPointMake(x, y);

    }

    - (CGPoint) topRight

    {

    CGFloat x = self.frame.origin.x + self.frame.size.width;

    CGFloat y = self.frame.origin.y;

    return CGPointMake(x, y);

    }

    // Retrieve and set height, width, top, bottom, left, right

    - (CGFloat) height

    {

    return self.frame.size.height;

    }

    - (void) setHeight: (CGFloat) newheight

    {

    CGRect newframe = self.frame;

    newframe.size.height = newheight;

    self.frame = newframe;

    }

    - (CGFloat) width

    {

    return self.frame.size.width;

    }

    - (void) setWidth: (CGFloat) newwidth

    {

    CGRect newframe = self.frame;

    newframe.size.width = newwidth;

    self.frame = newframe;

    }

    - (CGFloat) top

    {

    return self.frame.origin.y;

    }

    - (void) setTop: (CGFloat) newtop

    {

    CGRect newframe = self.frame;

    newframe.origin.y = newtop;

    self.frame = newframe;

    }

    - (CGFloat) left

    {

    return self.frame.origin.x;

    }

    - (void) setLeft: (CGFloat) newleft

    {

    CGRect newframe = self.frame;

    newframe.origin.x = newleft;

    self.frame = newframe;

    }

    - (CGFloat) bottom

    {

    return self.frame.origin.y + self.frame.size.height;

    }

    - (void) setBottom: (CGFloat) newbottom

    {

    CGRect newframe = self.frame;

    newframe.origin.y = newbottom - self.frame.size.height;

    self.frame = newframe;

    }

    - (CGFloat) right

    {

    return self.frame.origin.x + self.frame.size.width;

    }

    - (void) setRight: (CGFloat) newright

    {

    CGFloat delta = newright - (self.frame.origin.x + self.frame.size.width);

    CGRect newframe = self.frame;

    newframe.origin.x += delta ;

    self.frame = newframe;

    }

    // Move via offset

    - (void) moveBy: (CGPoint) delta

    {

    CGPoint newcenter = self.center;

    newcenter.x += delta.x;

    newcenter.y += delta.y;

    self.center = newcenter;

    }

    // Scaling

    - (void) scaleBy: (CGFloat) scaleFactor

    {

    CGRect newframe = self.frame;

    newframe.size.width *= scaleFactor;

    newframe.size.height *= scaleFactor;

    self.frame = newframe;

    }

    // Ensure that both dimensions fit within the given size by scaling down

    - (void) fitInSize: (CGSize) aSize

    {

    CGFloat scale;

    CGRect newframe = self.frame;

    if (newframe.size.height && (newframe.size.height > aSize.height))

    {

    scale = aSize.height / newframe.size.height;

    newframe.size.width *= scale;

    newframe.size.height *= scale;

    }

    if (newframe.size.width && (newframe.size.width >= aSize.width))

    {

    scale = aSize.width / newframe.size.width;

    newframe.size.width *= scale;

    newframe.size.height *= scale;

    }

    self.frame = newframe;

    }

    @end

    3.导入遮盖类头文件

    #import "TGCover.h"

    @interface ThirdViewController ()

    {

        TGCover *_cover; 

     }

    // 1.添加蒙板(遮盖)

    - (void)loadView

    {

        [super loadView];

    _cover = [TGCover coverWithTarget:self action:@selector(hide)];

            _cover.frame = CGRectMake(0, tf1.bottom, self.view.size.width, self.view.self.height);

            [self.tableView addSubview:_cover];

    }

         

     

  • 相关阅读:
    .NET core webApi 使用JWT验证签名
    sudo
    Mysql Error Code : 1436 Thread stack overrun
    Parallel World 4 – Parallel Task (1)
    SQLSTATE[HY000] [2002] Can't connect to local MySQL server
    Parallel World 3 – Parallel Task (2)
    Parallel World 5 – Concurrent Collections (1)
    Utime failed: Permission denied in Smarty/sysplugins/smarty_internal_template.php on line xxx
    Add Reference
    Javascript Tips
  • 原文地址:https://www.cnblogs.com/kexiaozhu/p/4435341.html
Copyright © 2011-2022 走看看