У меня возникла проблема с UIScrollView. Я делаю пользовательский вид, который наследует UIView. В представлении есть UIScrollView, на котором есть много кнопок, которые должны прокручиваться влево и вправо. UIScrollView и кнопки могут отображаться нормально. Но я не могу прокручивать кнопки. Может ли кто-нибудь дать мне несколько предложений? Большое спасибо!UIScrollView не прокручивает
MZMPhotoCalenderSwitcher.h
#import <UIKit/UIKit.h>
@interface MZMPhotoCalenderSwitcher : UIView <UIScrollViewDelegate>
@property (strong, nonatomic) UIScrollView *topSwitcher;
@end
MZMPhotoCalenderSwitcher.m
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.topSwitcher = [[UIScrollView alloc] initWithFrame:CGRectMake(0, LABEL_HEIGHT + VIEW_Y, self.view.bounds.size.width, TOP_SWITCHER_HEIGHT)];
self.topSwitcher.backgroundColor = [UIColor greenColor];
self.topSwitcher.pagingEnabled = YES;
self.topSwitcher.showsHorizontalScrollIndicator = NO;
self.topSwitcher.showsVerticalScrollIndicator = NO;
[self add:3 ButtonsOnView:self.topSwitcher withButtonWidth:44.8f andHeight:20.0f];
}
- (void)add:(int)num ButtonsOnView:(UIScrollView *)view withButtonWidth:(CGFloat)width andHeight:(CGFloat)height
{
CGFloat totalTopSwitcherWidth = num * width;
[view setContentSize:CGSizeMake(totalTopSwitcherWidth, view.bounds.size.height)];
CGFloat xOffset = 0.0f;
for (int i=1; i<=num; i++)
{
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setFrame:CGRectMake(xOffset, 0, width, height)];
xOffset += width;
[button setTitle:[NSString stringWithFormat:@"%d", i] forState:UIControlStateNormal];
button.titleLabel.font = [UIFont systemFontOfSize:10];
[button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[button setTitleColor:[UIColor blackColor] forState:UIControlStateSelected];
[button setTag:i];
[button addTarget:self action:@selector(buttonEvent) forControlEvents:UIControlEventTouchUpInside];
if (i % 2 == 0)
[button setBackgroundColor:[UIColor yellowColor]];
else
[button setBackgroundColor:[UIColor redColor]];
[view addSubview:button];
}
}
Я изменяю '[самостоятельного дополнения: 3 ButtonsOnView: self.topSwitcher withButtonWidth: 44.8f andHeight: 20.0f] ; } 'to' [self add: 10 ButtonsOnView: self.topSwitcher withButtonWidth: 44.8f andHeight: 20.0f]; } ', затем распечатайте contentSize.width после' [view addSubview: button]; '. Правильно соответствует ContentSize.width = 448. Потому что каждая ширина кнопок составляет 44,8 и есть 10 кнопок. Но я не понимаю, почему scrollview все еще не прокручивается. Кроме того, я реализую функцию buttonEvent, которая просто печатает сообщение. Когда я нажимаю кнопку, журнал также не отображается. Думаю, я должен что-то упустить. –