首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >改变UIView位置的简单方法?

改变UIView位置的简单方法?
EN

Stack Overflow用户
提问于 2011-03-02 06:18:21
回答 11查看 130K关注 0票数 71

我使用以下代码更改了UIView的位置,但没有更改视图的大小。

代码语言:javascript
复制
CGRect f = aView.frame;
f.origin.x = 100; // new x
f.origin.y = 200; // new y
aView.frame = f;

有没有更简单的方法来改变视图的位置?

EN

回答 11

Stack Overflow用户

发布于 2011-03-02 06:42:37

我也有同样的问题。我创建了一个简单的UIView类别来解决这个问题。

.h

代码语言:javascript
复制
#import <UIKit/UIKit.h>


@interface UIView (GCLibrary)

@property (nonatomic, assign) CGFloat height;
@property (nonatomic, assign) CGFloat width;
@property (nonatomic, assign) CGFloat x;
@property (nonatomic, assign) CGFloat y;

@end

.m

代码语言:javascript
复制
#import "UIView+GCLibrary.h"


@implementation UIView (GCLibrary)

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

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

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

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

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

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

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

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

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

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

@end
票数 32
EN

Stack Overflow用户

发布于 2011-03-02 06:23:41

UIView也有一个center属性。如果你只想移动位置而不是调整大小,你可以改变它-例如:

aView.center = CGPointMake(50, 200);

否则你就会按照你发布的方式来做。

票数 13
EN

Stack Overflow用户

发布于 2013-01-26 01:39:22

我发现了一种与gcamp的答案类似的方法(它也使用了一个类别),这对我的here很有帮助。在你的例子中是这样简单的:

代码语言:javascript
复制
aView.topLeft = CGPointMake(100, 200);

但是,如果您想要水平居中并向左放置另一个视图,您可以简单地:

代码语言:javascript
复制
aView.topLeft = anotherView.middleLeft;
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5161096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档