UIView+WKCategory
따라서 해결 방안은 일반적으로 기존 대상의 구조체 속성을 임시 구조체에 부여한 다음에 임시 구조체 안의 구성원을 수정한 다음에 이 수정된 구조체 변수를 직접 기존 대상의 구조체 변수에 부여하는 것이 수정된 것과 같다
UIView * view = [[UIView alloc]init];
view.frame.origin.x = 100;
CGRect frame = view.frame;
frame.origin.x = 100;
view.frame = frame;
category 분류 UIView는 몇 개의 속성 x, y, height,width를 추가합니다.이 몇 가지 속성은 get 방법과 set 방법을 각각 실현한다.이렇게 하면 프레임은 그를 떠날 수 있다. 이렇게 분류된 모든 계승 UIView의 클래스에 이 몇 가지 속성을 가져와서 사이즈와 좌표에 직접 값을 부여할 수 있다. 중간 변수를 도입하지 않아도 빠르고 편리하다.
#import
@interface UIView (WKCategory)
@property (assign, nonatomic) CGFloat x;
@property (assign, nonatomic) CGFloat y;
@property (assign, nonatomic) CGFloat width;
@property (assign, nonatomic) CGFloat height;
@property (assign, nonatomic) CGSize size;
@property (assign, nonatomic) CGPoint origin;
@end
@implementation UIView (WKCategory)
-(void)setX:(CGFloat)x{
CGRect frame = self.frame;
frame.origin.x = x;
self.frame = frame;
}
- (CGFloat)x
{
return self.frame.origin.x;
}
-(void)setY:(CGFloat)y
{
CGRect frame = self.frame;
frame.origin.y = y;
self.frame = frame;
}
- (CGFloat)y
{
return self.frame.origin.y;
}
-(void)setWidth:(CGFloat)width{
CGRect frame = self.frame;
frame.size.width = width;
self.frame = frame;
}
- (CGFloat)width
{
return self.frame.size.width;
}
- (void)setHeight:(CGFloat)height
{
CGRect frame = self.frame;
frame.size.height = height;
self.frame = frame;
}
- (CGFloat)height
{
return self.frame.size.height;
}
- (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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.