Как настроить скроллвью с множеством кнопок? - PullRequest
0 голосов
/ 30 июня 2011

Я пытался добавить кнопки в режиме прокрутки, но не смог их сделать.Я хочу добавить еще 7 кнопок в представление, но я хочу, чтобы пользователь мог получить доступ ко всем семи кнопкам, прокручивая их вниз.Как я могу это сделать?

Пожалуйста, кто-нибудь направит меня или предоставит ссылку, чтобы я мог понять.

РЕДАКТИРОВАТЬ:

Я создал приложение на основе представления и назвалкак poo1 & в poo1ViewController.h,

@interface poo1ViewController  : UIViewController <infodelegate>
{
 IBOutlet UIButton *a;
 IBOutlet UIButton *b;
 IBOutlet UIButton *c;
 IBOutlet UIButton *d;
 IBOutlet UIButton *e;
 IBOutlet UIScrollView *fView;
}
@property (nonatomic,retain) UIScrollView *fView;;
@property (nonatomic,retain) UIButton *a;
@property (nonatomic,retain) UIButton *b;
@property (nonatomic,retain) UIButton *c;
@property (nonatomic,retain) UIButton *d;
@property (nonatomic,retain) UIButton *e;
-(IBAction) ia:(id)sender;

И в файле реализации

#import "poo1ViewController.h"


@implementation poo1ViewController

@synthesize a;
@synthesize b;
@synthesize c;
@synthesize d;
@synthesize e;
@synthesize fView;
-(IBAction) ia:(id)sender {
}


@end

. Вот так у меня есть метод для всех кнопок, теперь я хочу, чтобы все кнопки былиприсутствует, когда приложение открывается, но для доступа ко всему, что нужно пользователю для прокрутки вниз, я не знаю, как реализовать представление прокрутки в текущем представлении, поэтому представление poo1ViewController.xib становится прокручиваемым.

Ответы [ 2 ]

1 голос
/ 02 января 2013

У меня тоже была такая же проблема. Я создал кнопки программно и не смог получить доступ ко всем из них, потому что представление не прокручивалось. Важной для прокрутки является последняя строка моего кода. Сначала я установил определенную начальную точку «positionX» для кнопок. После этого я перебираю свою базу данных и создаю кнопку для каждой записи. После создания новой кнопки я увеличиваю positionX на высоту кнопки + 10. Когда все кнопки будут созданы, цикл заканчивается, и значение positionX будет также использоваться для высоты моего UIScrollView.

int positionX = 10;

for (int i = 0; i < [activities count]; i++) {

    //get single object out of nsarray
    Activity *activity = [activities objectAtIndex:i];

    //create button for an activity
    UIButton *activityButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [activityButton setTitle:activity.definition forState:UIControlStateNormal];
    activityButton.frame = CGRectMake(10, positionX, 300, 40);
    [self.activityScrollView addSubview:activityButton];

    positionX += 50;
}

//set the content size of the scroll view
[self.activityScrollView setContentSize:CGSizeMake(320, positionX + 20)];

Может быть этот сайт тоже полезен. Я решил проблему после прочтения учебника.

0 голосов
/ 30 июня 2011

UIScrollView не будет scrollable в Interface Builder.Вам придется либо растянуть его и добавить UIButtons там, где вы хотите, чтобы он был, а затем изменить размер UIScrollView в конце, ИЛИ вам нужно будет добавить свой UIButtons programmatically к вашему * 1008.*.

Лично я бы выбрал это программно.Вы можете либо создать UIButtons программным способом (что я бы выбрал), либо, если вы хотите вырезать corners, вы можете просто добавить их к вашему UIScrollView в файле xib и убедиться, чтоу вас есть IBOutlet, соединяющий их с вашим кодом.Затем в вашем коде установите их фреймы там, где вы хотите.

-(void)viewWillAppear:(BOOL)animated {
    // CGRectMake(x,y,width,height)
    a.frame = CGRectMake(20, 20, a.frame.size.width, a.frame.size.height);    
    b.frame = CGRectMake(20, 50, b.frame.size.width, b.frame.size.height);

    // etc. etc. for the rest of your buttons

Затем убедитесь, что вы установили фрейм и contentSize вашего UIScrollView, иначе он не будет прокручиваться.

  myScrollView.frame = self.view.frame;
  myScrollView.contentSize = CGSizeMake(self.view.frame.size.width, 
                                        myScrollView.frame.size.height
                 + how many pixels you want it to be able to scroll up and down>;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...