我正在尝试用图像和数字创建UIView。我想把它们集中起来。现在我有这个代码:
CGRect likesRect = CGRectMake(0,152, screenWidth / 2, 30);
MARoundedRect *likesRoundedRect = [[MARoundedRect alloc] initWithFrame:likesRect];
UIView *likesView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 30)];
likesView.center = CGPointMake(screenWidth / 4, 20);
UIImageView *likeImage = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 20, 20)];
likeImage.image = [UIImage imageNamed:@"favorite.png"];
UILabel *likesLabel = [[UILabel alloc]initWithFrame:CGRectMake(30, 0, screenWidth / 2, 20)];
[likesLabel setTextColor:[UIColor whiteColor]];
[likesLabel setBackgroundColor: [UIColor clearColor]];
[likesLabel setText:[actualPlace.Favorites stringValue]];
[likesView addSubview:likeImage];
[likesView addSubview:likesLabel];
[likesRoundedRect addSubview:likesView];
[viewController.view addSubview:likesRoundedRect];
现在它工作得很好,但是我将likesView的宽度设置为精确值,而且当我没有一个或两个字母但更多的数字时,我想这会变坏。我怎样才能解决这个问题?如果有两个或多个组件并排,如何集中UIView的内容?或者我如何设置UIView按内容动态更改宽度?感谢
答案 0 :(得分:0)
我没有编写完整的代码,但您尝试使用以下代码,
CGRect likesRect = CGRectMake(0,152, screenWidth / 2, 30);
MARoundedRect *likesRoundedRect = [[MARoundedRect alloc] initWithFrame:likesRect];
CGSize likeViewSize = CGSizeMake(50,30);
UIView *likesView = [[UIView alloc] init];
likesView.frame = CGRectMake(likesRoundedRect.frame.size.width/2 - likeViewSize.width/2,likesRoundedRect.frame.size.height/2 - likeViewSize.height/2,likeViewSize.width,likeViewSize.height);
我将likesView
置于其父视图中心。如果你想将它们放在父视图上(likesView
)
答案 1 :(得分:0)
UIView及其子类有一个名为center的属性:
CGPoint center1 = CGPointmake(self.view.bounds.size.width/2,
self.view.bounds.size,height/2) ;
subview.center = center1;
以下讨论来自关于UIView的Apple文档:
@property(非原子)CGPoint中心 讨论 中心在其超视图的坐标系内指定,并以点为单位进行测量。设置此属性会相应地更改框架属性的值。
更改框架矩形会自动重新显示接收器而不调用drawRect:方法。如果您希望在框架矩形更改时调用drawRect:方法,请将contentMode属性设置为UIViewContentModeRedraw。
可以设置对此属性的更改。使用beginAnimations:context:class方法开始,使用commitAnimations类方法结束动画块。
状况 适用于iOS 2.0及更高版本。 也可以看看 @property框架 @property界限 @property变换 相关示例代码 AVLoupe 使用响应方法和手势识别器处理触摸 iAdInterstitialSuite iAdSuite RosyWriter 宣告进入 UIView.h