Как я создаю сетку значков как главный экран iPhone?

Вы можете использовать отражение для этого, вот пример:

    Type type = typeof(Benefits);
    PropertyInfo[] properties = type.GetProperties();
    foreach (PropertyInfo property in properties)
    {
         // your logic here
        Console.WriteLine("{0} = {1}", property.Name, property.GetValue(benefitsInstance, null));
    }

    Console.Read();
11
задан erickson 9 February 2009 в 18:42
поделиться

5 ответов

Необходимо добавить значки (которые являются UIViews какой-то) как подпредставления представления "Springboard". Никакой пользовательский рисунок, необходимый, и UITable, не является thh абсолютным неправильным способом пойти. Просто необходимо сделать математику для размещения их правильно (путем установки их кадра).

2
ответ дан 3 December 2019 в 08:57
поделиться

@August: Я послушал Ваш совет и добавил UIButtons как подпредставления UIView, а не далее изучите UITable.Спасибо!

Надо надеяться, код ниже поможет инициировать кого-то еще. Я статически поместил 4 кнопки в сетку. Не должно быть намного более трудно поместить любое количество кнопок согласно границам и ориентации родительского UIVIEW.

@implementation IconView
- (id)initWithFrame:(struct CGRect)windowRect{
  self = [super initWithFrame: windowRect];
  if (self != nil){
    for(int i = 0; i < 4; i++){
      buttons[i] = [self buildButton];
      [self addSubview: buttons[i]];
    }
    [self reInit];
  }
  return self;
}
- (UIButton *) buildButton{
  UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 60, 60)];
  [button setBackgroundImage: [[UIImage imageNamed:@"icon.png"] stretchableImageWithLeftCapWidth:60 topCapHeight:0] forState:UIControlStateNormal];
  return [button autorelease];
}
- (void)reInit{
  CGRect rect;
  rect = buttons[0].frame;
  rect.origin = CGPointMake(5, 5);
  buttons[0].frame = rect;

  rect = buttons[1].frame;
  rect.origin = CGPointMake(70, 5);
  buttons[1].frame = rect;

  rect = buttons[2].frame;
  rect.origin = CGPointMake(5, 70);
  buttons[2].frame = rect;

  rect = buttons[3].frame;
  rect.origin = CGPointMake(70, 70);
  buttons[3].frame = rect;
}
@end
1
ответ дан 3 December 2019 в 08:57
поделиться

Используйте реализацию gridView компании Arijasoft. Это статическая библиотека, которая позволяет генерировать вид grid с обратными вызовами и делегировать методы оптимизации

.
0
ответ дан 3 December 2019 в 08:57
поделиться

Я написал пример кода, чтобы сделать что-то подобное. См. Мою запись в блоге Tiles или просто загрузите код: Tiles-v1.0.zip .

Мой код создает значки как слои Core Animation, а не как UIViews, но демонстрирует, как обнаруживать касания и разрешать реорганизацию значков.Он не обрабатывает изменения ориентации.

6
ответ дан 3 December 2019 в 08:57
поделиться

Старая ветка, но вам также следует проверить AQGridView Алана Куартрмейна.

4
ответ дан 3 December 2019 в 08:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: