iOS 添加view的分类(更加方便的设置view的位置)

点击创建UIView的分类category,这里命名为 PLExtension(为了和下面对应)

view分类.h文件

#import <UIKit/UIKit.h>

@interface UIView (PLExtension)
@property (nonatomic, assign) CGFloat WL_width;
@property (nonatomic, assign) CGFloat WL_height;
@property (nonatomic, assign) CGFloat WL_x;
@property (nonatomic, assign) CGFloat WL_y;
@property (nonatomic, assign) CGFloat WL_centerX;
@property (nonatomic, assign) CGFloat WL_centerY;

@property (nonatomic, assign) CGFloat WL_right;
@property (nonatomic, assign) CGFloat WL_bottom;
@end

.m文件

#import "UIView+PLExtension.h"

@implementation UIView (WLExtension)

- (CGFloat)WL_width
{
    return self.frame.size.width;
}

- (CGFloat)WL_height
{
    return self.frame.size.height;
}

- (void)setWL_width:(CGFloat)WL_width
{
    CGRect frame = self.frame;
    frame.size.width = WL_width;
    self.frame = frame;
}

- (void)setWL_height:(CGFloat)WL_height
{
    CGRect frame = self.frame;
    frame.size.height = WL_height;
    self.frame = frame;
}

- (CGFloat)WL_x
{
    return self.frame.origin.x;
}

- (void)setWL_x:(CGFloat)WL_x
{
    CGRect frame = self.frame;
    frame.origin.x = WL_x;
    self.frame = frame;
}

- (CGFloat)WL_y
{
    return self.frame.origin.y;
}

- (void)setWL_y:(CGFloat)WL_y
{
    CGRect frame = self.frame;
    frame.origin.y = WL_y;
    self.frame = frame;
}

- (CGFloat)WL_centerX
{
    return self.center.x;
}

- (void)setWL_centerX:(CGFloat)WL_centerX
{
    CGPoint center = self.center;
    center.x = WL_centerX;
    self.center = center;
}

- (CGFloat)WL_centerY
{
    return self.center.y;
}

- (void)setWL_centerY:(CGFloat)WL_centerY
{
    CGPoint center = self.center;
    center.y = WL_centerY;
    self.center = center;
}

- (CGFloat)WL_right
{
    //    return self.WL_x + self.WL_width;
    return CGRectGetMaxX(self.frame);
}

- (CGFloat)WL_bottom
{
    //    return self.WL_y + self.WL_height;
    return CGRectGetMaxY(self.frame);
}

- (void)setWL_right:(CGFloat)WL_right
{
    self.WL_x = WL_right - self.WL_width;
}

- (void)setWL_bottom:(CGFloat)WL_bottom
{
    self.WL_y = WL_bottom - self.WL_height;
}

@end

  

时间: 2024-10-15 00:15:21

iOS 添加view的分类(更加方便的设置view的位置)的相关文章

iOS 之(TableView中利用系统的 cell 设置 cell.textlabel 位置和大小)

今天工作稍微的遇到了一点小小的难题,需求效果中 TableView cell 中的 Label 字体大小比原先系统中的要大些且 Label 位置不是在前面,而是在中间往后,对于这个问题我第一时间也是想到了自定义cell,但一般说来,自定义 cell 需要有model ,有model就需要有属性,如果说在没有model,只有 Array 的情况下,想要给 cell 的 textLabel 赋值一般使用 cell.textLabel.text = _Array[indexPath.row]; 这一句

IOS UI-控制器的创建和控制器的View的创建

一.控制器的创建和控制器的View的创建 说明:控制器有三种创建方式,下面一一进行说明. 一.第一种创建方式(使用代码直接创建) 1.创建一个空的IOS项目. 2.为项目添加一个控制器类. 3.直接在代理方法中创建一个控制器. 1 #import "YYAppDelegate.h" 2 #import "YYViewController.h" 3 4 @implementation YYAppDelegate 5 6 - (BOOL)application:(UIA

iOS学习4_控制器的创建方式和控制器view的创建

UIScreen是与设备有关的物理屏幕 Window是一个窗口对应UIWindow类,继承自UIView,window要显示在Screen上必须设置为主窗口并且可见.接下来就可以往UIWindow上面添加一些控件了. 下图就是简单地层次关系 ViewController是用来组织和控制视图的,与上图不同的是这里使用了视图控制器ViewController,不需要直接将view指定给window,相反,只需要给window制定一个视图控制器,视图控制器会自动的将他的view添加给window.如下

iOS添加Google语言识别功能

+ ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85

[iOS基础控件 6.11.1] - 控制器 &amp; 控制器view

A.控制器的创建 控制器常见的创建方式有以下几种通过storyboard创建 直接创建 1 ViewController *vc = [[ViewController alloc] init]; xib设置了class后,当xib的文件名跟controller类名一样的时候,用这个方法默认就会加载xib中的controller 指定xib文件来创建 1 ViewController *vc = [[ViewController alloc] initWithNibName:@"ViewContr

ios 添加真机调试

1.按照下面步骤,在3 步骤,第一个框:随意取个名字 第二个框:输入手机的identify 2.修改Provisioning Profiles  选中刚才所添加的设备,然后点击右下的蓝色按钮 3.download 证书,然后双击打开,就会重新替换之前的 4.查看Organizer - Devices -> 自己的设备 -> provisioning profiles  出现刚才双击的证书 并且右边有个绿色的钩号,表明此设备可以真机调试了! ios 添加真机调试

ios常见错误之 Failed to instantiate the default view controller for UIMainStoryboardFile &#39;Main&#39; - perhaps the designated entry point is not set?

Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set? 这是因为给你的StoryBoard没有设置默认显示的controller, 解决方法: from:http://my.oschina.net/u/936286/blog/316565 ios常见错误之 Failed to instanti

【iOS基础控件 - 14】 控制器 &amp;&amp; 控制器的view

A.控制器的创建 控制器常见的创建方式有以下几种通过storyboard创建 直接创建 1 ViewController *vc = [[ViewController alloc] init]; xib设置了class后,当xib的文件名跟controller类名一样的时候,用这个方法默认就会加载xib中的controller 指定xib文件来创建 1 ViewController *vc = [[ViewController alloc] initWithNibName:@"ViewContr

Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮

前言 之前写过屏蔽系统导航栏功能的文章,具体可看Android6.0 源码修改之屏蔽导航栏虚拟按键(Home和RecentAPP)/动态显示和隐藏NavigationBar 在某些特殊定制的版本中要求完全去掉导航栏,那么当用户点进一些系统自带的应用界面如设置.联系人等,就没法退出了,虽然可以在actionBar中添加back按钮,但总不能每一个app都去添加吧.所以灵机一动我们就给系统添加一个全屏可拖拽的浮窗按钮,点击的时候处理返回键的逻辑.它大概长这样(审美可能丑了点,你们可以自由发挥) 图1