zoukankan      html  css  js  c++  java
  • 它们的定义View

    Ios“巷自己的定义View和Android类别似

    在.h文件设置了他的一些财产。方法

    在.m文件中实现

    .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



    .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


    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    java.lang.Math.pow方法
    【动态代理】增强代理方法、代理多种方法
    Exception in thread "main" java.net.ConnectException: Connection refused: connect
    serialVersionUID设置自动添加
    三个线程之间的通信
    LinkedList源码分析
    JavaScript学习
    Java学习大纲
    w3cschool-javascript教程-学习笔记
    FreeMarker学习总结
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4746371.html
Copyright © 2011-2022 走看看