关于 Expression is not assignable 错误

本文介绍如何通过分类为UIView添加布局属性如x、y坐标,中心点坐标,宽度,高度等,以便更方便地进行Swift UI界面布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在 Build Phases中导入  UIKit.framework 

 

2.在pch中导入头文件

#import <UIKit/UIKit.h>

 

3.写一个分类

即可解决

贴出分类代码

 

 ......h文件

#import <UIKit/UIKit.h>

 

@interface UIView (Extension)

@property (nonatomic, assign) CGFloat x;

@property (nonatomic, assign) CGFloat y;

@property (nonatomic, assign) CGFloat centerX;

@property (nonatomic, assign) CGFloat centerY;

@property (nonatomic, assign) CGFloat width;

@property (nonatomic, assign) CGFloat height;

@property (nonatomic, assign) CGSize size;

@property (nonatomic, assign) CGPoint origin;

@end

 

.....m文件

#import "UIView+Extension.h"

 

@implementation UIView (Extension)

 

- (void)setX:(CGFloat)x

{

    CGRect frame = self.frame;

    frame.origin.x = x;

    self.frame = frame;

}

 

- (void)setY:(CGFloat)y

{

    CGRect frame = self.frame;

    frame.origin.y = y;

    self.frame = frame;

}

 

- (CGFloat)x

{

    return self.frame.origin.x;

}

 

- (CGFloat)y

{

    return self.frame.origin.y;

}

 

- (void)setCenterX:(CGFloat)centerX

{

    CGPoint center = self.center;

    center.x = centerX;

    self.center = center;

}

 

- (CGFloat)centerX

{

    return self.center.x;

}

 

- (void)setCenterY:(CGFloat)centerY

{

    CGPoint center = self.center;

    center.y = centerY;

    self.center = center;

}

 

- (CGFloat)centerY

{

    return self.center.y;

}

 

- (void)setWidth:(CGFloat)width

{

    CGRect frame = self.frame;

    frame.size.width = width;

    self.frame = frame;

}

 

- (void)setHeight:(CGFloat)height

{

    CGRect frame = self.frame;

    frame.size.height = height;

    self.frame = frame;

}

 

- (CGFloat)height

{

    return self.frame.size.height;

}

 

- (CGFloat)width

{

    return self.frame.size.width;

}

 

- (void)setSize:(CGSize)size

{

    CGRect frame = self.frame;

    frame.size = size;

    self.frame = frame;

}

 

- (CGSize)size

{

    return self.frame.size;

}

 

- (void)setOrigin:(CGPoint)origin

{

    CGRect frame = self.frame;

    frame.origin = origin;

    self.frame = frame;

}

 

- (CGPoint)origin

{

    return self.frame.origin;

}

@end

 

转载于:https://www.cnblogs.com/ccw-congcong/p/10677546.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值