2012-02-20 2 views
1

в инструкции if ниже, как я могу сделать имя куска1 динамичным, чтобы он проверял и другие фигуры, которые являются частями 1, 2, ....Написание имени UIImageView динамически

Мне бы хотелось, чтобы это выглядело как что-то вроде [@ "штук% d", я] Я просто не уверен, какой правильный способ писать это будет, так как я только начинаю с iOS.

for (int i = 0; i < 6; i++) { 

    if(CGRectContainsPoint([piece1 frame], location)){ 
     piece1.center = location; 
    } 
} 

ответ

1

Что-то вроде этого:

for (int i = 0; i < 6; i++) { 
    // Create a selector to get the piece 
    NSString *selectorName = [NSString stringWithFormat:@"piece%d", i]; 
    SEL selector = NSSelectorFromString(selectorName); 
    UIView *peice = [self performSelector:selector]; 

    // Now do your test 
    if(CGRectContainsPoint([piece frame], location)){ 
     piece1.center = location; 
    } 
} 

Ключевые биты NSSelectorFromString, чтобы превратить строку в селекторе и performSelector:, чтобы получить объект сопоставления его.

+0

спасибо, очень полезно. –

0

Сначала добавь тег в ImageView при инициализации их затем изменить код этого

for (int i = 0; i < 6; i++) { 

UIImageView *piece = (UIImageView *)[self.view viewWithTag:i] ; 

    if(CGRectContainsPoint([piece frame], location)){ 
     piece.center = location; 
    } 
} 

убедитесь, что ваш тег соответствует значению, которое будет находиться в цикле I значения.

+0

Возможно, вы захотите немного изменить его - ваш первый тег будет '0', тегом по умолчанию для всех немаркированных представлений. Попробуйте 'viewWithTag: i + 100' и ​​пометьте свои части 100, 101, 102 ...;) – deanWombourne

+0

спасибо за информацию .. не знаю, что .. – Shubhank

Смежные вопросы