自己以后开始一个新的项目的时候一定要给uiview写一些拓展的协议

@interface UIView (TTCategory)


.m文件的内容

//

// Copyright 2009-2011 Facebook

//

// Licensed under the Apache License, Version 2.0 (the "License");

// you may not use this file except in compliance with the License.

// You may obtain a copy of the License at

//

//    http://www.apache.org/licenses/LICENSE-2.0

//

// Unless required by applicable law or agreed to in writing, software

// distributed under the License is distributed on an "AS IS" BASIS,

// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

// See the License for the specific language governing permissions and

// limitations under the License.

//


#import "UIViewAdditions.h"


///

///

///

/**

 * Additions.

 */

//TT_FIX_CATEGORY_BUG(UIViewAdditions)


@implementation UIView (TTCategory)



///

- (CGFloat)left {

  return self.frame.origin.x;

}



///

- (void)setLeft:(CGFloat)x {

  CGRect frame = self.frame;

  frame.origin.x = x;

  self.frame = frame;

}



///

- (CGFloat)top {

  return self.frame.origin.y;

}



///

- (void)setTop:(CGFloat)y {

  CGRect frame = self.frame;

  frame.origin.y = y;

  self.frame = frame;

}



///

- (CGFloat)right {

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

}



///

- (void)setRight:(CGFloat)right {

  CGRect frame = self.frame;

  frame.origin.x = right - frame.size.width;

  self.frame = frame;

}



///

- (CGFloat)bottom {

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

}



///

- (void)setBottom:(CGFloat)bottom {

  CGRect frame = self.frame;

  frame.origin.y = bottom - frame.size.height;

  self.frame = frame;

}



///

- (CGFloat)centerX {

  return self.center.x;

}



///

- (void)setCenterX:(CGFloat)centerX {

  self.center = CGPointMake(centerX, self.center.y);

}



///

- (CGFloat)centerY {

  return self.center.y;

}



///

- (void)setCenterY:(CGFloat)centerY {

  self.center = CGPointMake(self.center.x, centerY);

}



///

- (CGFloat)width {

  return self.frame.size.width;

}



///

- (void)setWidth:(CGFloat)width {

  CGRect frame = self.frame;

  frame.size.width = width;

  self.frame = frame;

}



///

- (CGFloat)height {

  return self.frame.size.height;

}



///

- (void)setHeight:(CGFloat)height {

  CGRect frame = self.frame;

  frame.size.height = height;

  self.frame = frame;

}



///

- (CGFloat)ttScreenX {

  CGFloat x = 0.0f;

  for (UIView* view = self; view; view = view.superview) {

    x += view.left;

  }

  return x;

}



///

- (CGFloat)ttScreenY {

  CGFloat y = 0.0f;

  for (UIView* view = self; view; view = view.superview) {

    y += view.top;

  }

  return y;

}



///

- (CGFloat)screenViewX {

  CGFloat x = 0.0f;

  for (UIView* view = self; view; view = view.superview) {

      x += view.left;


    if ([view isKindOfClass:[UIScrollView class]]) {

      UIScrollView* scrollView = (UIScrollView*)view;

      x -= scrollView.contentOffset.x;

    }

  }


  return x;

}



///

- (CGFloat)screenViewY {

  CGFloat y = 0;

  for (UIView* view = self; view; view = view.superview) {

    y += view.top;


    if ([view isKindOfClass:[UIScrollView class]]) {

      UIScrollView* scrollView = (UIScrollView*)view;

      y -= scrollView.contentOffset.y;

    }

  }

  return y;

}



///

- (CGRect)screenFrame {

  return CGRectMake(self.screenViewX, self.screenViewY, self.width, self.height);

}



///

- (CGPoint)origin {

  return self.frame.origin;

}



///

- (void)setOrigin:(CGPoint)origin {

  CGRect frame = self.frame;

  frame.origin = origin;

  self.frame = frame;

}



///

- (CGSize)size {

  return self.frame.size;

}



///

- (void)setSize:(CGSize)size {

  CGRect frame = self.frame;

  frame.size = size;

  self.frame = frame;

}


@end


.h文件

//

// Copyright 2009-2011 Facebook

//

// Licensed under the Apache License, Version 2.0 (the "License");

// you may not use this file except in compliance with the License.

// You may obtain a copy of the License at

//

//    http://www.apache.org/licenses/LICENSE-2.0

//

// Unless required by applicable law or agreed to in writing, software

// distributed under the License is distributed on an "AS IS" BASIS,

// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

// See the License for the specific language governing permissions and

// limitations under the License.

//


#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>


@interface UIView (TTCategory)


/**

 * Shortcut for frame.origin.x.

 *

 * Sets frame.origin.x = left

 */

@property (nonatomic) CGFloat left;


/**

 * Shortcut for frame.origin.y

 *

 * Sets frame.origin.y = top

 */

@property (nonatomic) CGFloat top;


/**

 * Shortcut for frame.origin.x + frame.size.width

 *

 * Sets frame.origin.x = right - frame.size.width

 */

@property (nonatomic) CGFloat right;


/**

 * Shortcut for frame.origin.y + frame.size.height

 *

 * Sets frame.origin.y = bottom - frame.size.height

 */

@property (nonatomic) CGFloat bottom;


/**

 * Shortcut for frame.size.width

 *

 * Sets frame.size.width = width

 */

@property (nonatomic) CGFloat width;


/**

 * Shortcut for frame.size.height

 *

 * Sets frame.size.height = height

 */

@property (nonatomic) CGFloat height;


/**

 * Shortcut for center.x

 *

 * Sets center.x = centerX

 */

@property (nonatomic) CGFloat centerX;


/**

 * Shortcut for center.y

 *

 * Sets center.y = centerY

 */

@property (nonatomic) CGFloat centerY;


/**

 * Return the x coordinate on the screen.

 */

@property (nonatomic, readonly) CGFloat ttScreenX;


/**

 * Return the y coordinate on the screen.

 */

@property (nonatomic, readonly) CGFloat ttScreenY;


/**

 * Return the x coordinate on the screen, taking into account scroll views.

 */

@property (nonatomic, readonly) CGFloat screenViewX;


/**

 * Return the y coordinate on the screen, taking into account scroll views.

 */

@property (nonatomic, readonly) CGFloat screenViewY;


/**

 * Return the view frame on the screen, taking into account scroll views.

 */

@property (nonatomic, readonly) CGRect screenFrame;


/**

 * Shortcut for frame.origin

 */

@property (nonatomic) CGPoint origin;


/**

 * Shortcut for frame.size

 */

@property (nonatomic) CGSize size;


@end


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值