根据属性移动Object

时间:2014-03-06 05:42:24

标签: ios objective-c uiview

我希望在与addSubView:eventCell兼容的地方event.num 我有这个代码。

NSObject事件

@property NSString* title; 
@property NSInteger num1;
@property NSInteger num2;

ViewController.m

@property(nonatomic, retain) NSMutableArray* events;

- (void)setEventCell
{
    Event* event = [[Event alloc]init];
    event.title = ABC;
    event.num1 = 0;
    event.num2 = 0;
    [events addObject:event];

    for(Event* event in events){
        UIView* eventCell = [[UIView alloc]initWithFrame:CGRectMake(event.num1 * 20, event.num2 * 20, 20, 20);
        eventCell.label1.text = event.title;
        [self.view addSubView:eventCell];
    }
}

问题是eventCell上没有显示viewevent.num1 == 0event.num2 == 0时, 我想在eventCell位置设置x = 20, y = 20

你有什么想法吗? 谢谢。

2 个答案:

答案 0 :(得分:0)

  1. 尝试将背景颜色设置为eventCell,以确保它 是自我观点。
  2. 尝试在debug中检查框架。
  3. “eventCell.label1.text” - 是自定义视图吗?导致UIView类     没有label1属性!

答案 1 :(得分:0)

使用UILabel代替UIView并将标题设为eventCell.text = event.title

并且还为帧提供了如下条件

CGRect frame = CGRectMake(0,0,20,20);
if(event.num1 == 0 && event.num2 == 0){
frame.origin.x = 20;
frame.origin.y = 20;
}
else{
frame.origin.x = event.num1*20;
frame.origin.y = event.num2*20;
}
eventCell.frame = frame;

或者其他,只需使用框架

UILabel *eventCell = [[UILabel alloc] initWithFrame:CGRectMake(20+event.num1*20,20+event.num2*20, 20,20)]

由于

萨蒂亚