Iphone 程序在scrollViewDidScroll处接收到信号exc_bad_访问
在我的应用程序中,我尝试使用页面控制器进行滚动查看。pageController正在工作,但scrollView不工作。当我试图转到下一页时,我总是在第Iphone 程序在scrollViewDidScroll处接收到信号exc_bad_访问,iphone,xcode,uiscrollview,uipagecontrol,Iphone,Xcode,Uiscrollview,Uipagecontrol,在我的应用程序中,我尝试使用页面控制器进行滚动查看。pageController正在工作,但scrollView不工作。当我试图转到下一页时,我总是在第[自加载ScrollViewWithPage:page]行获得程序接收信号exc\u bad\u access 从方法scrollViewDidScroll 我看不出我的目标在哪里。请看这个代码 - (void)viewDidLoad { [super viewDidLoad]; [self getVehicules];
[自加载ScrollViewWithPage:page]行获得程序接收信号exc\u bad\u access
代码>
从方法scrollViewDidScroll
我看不出我的目标在哪里。请看这个代码
- (void)viewDidLoad
{
[super viewDidLoad];
[self getVehicules];
vosvehiculeScrollView.pagingEnabled = YES;
vosvehiculeScrollView.contentSize = CGSizeMake(vosvehiculeScrollView.frame.size.width * pageControlVehiculePossedee.numberOfPages, vosvehiculeScrollView.frame.size.height);
vosvehiculeScrollView.showsHorizontalScrollIndicator = NO;
vosvehiculeScrollView.showsVerticalScrollIndicator = NO;
vosvehiculeScrollView.scrollsToTop = NO;
pageControlVehiculePossedee.numberOfPages=[vehiculesPossede count];
pageControlVehiculePossedee.currentPage=0;
[pageControlVehiculePossedee addTarget:self action:@selector(pageAction:) forControlEvents:UIControlEventValueChanged];
for (int i=0; i<pageControlVehiculePossedee.numberOfPages;i++){
[self loadScrollViewWithPage:i];
}
}
- (void) loadScrollViewWithPage: (int) page {
if (page < 0) return;
if (page >= [vehiculesPossede count]) return;
CGRect frame = vosvehiculeScrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
viewVehicules.frame = frame;
[vosvehiculeScrollView addSubview:viewVehicules];
NSLog(@"%d",page);
}
- (void) scrollViewDidScroll: (UIScrollView *) sender {
if (pageControlUsed) {
return;
}
CGFloat pageWidth = vosvehiculeScrollView.frame.size.width;
int page = floor((vosvehiculeScrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
pageControlVehiculePossedee.currentPage = page;
[self loadScrollViewWithPage:page - 1];
[self loadScrollViewWithPage:page];
[self loadScrollViewWithPage:page + 1];
}
- (void) scrollViewWillBeginDragging: (UIScrollView *) scrollView {
pageControlUsed = NO;
}
- (void) scrollViewDidEndDecelerating: (UIScrollView *) scrollView {
pageControlUsed = NO;
}
-(void)pageAction:(UIPageControl*)control
{
NSLog(@"page changed");
int page = pageControlVehiculePossedee.currentPage;
NSLog(@"page %d", page);
CGRect frame;
frame.origin.x = self.vosvehiculeScrollView.frame.size.width * self.pageControlVehiculePossedee.currentPage;
frame.origin.y = 0;
frame.size = self.vosvehiculeScrollView.frame.size;
[self.vosvehiculeScrollView scrollRectToVisible:frame animated:YES];
pageControlUsed = YES;
}
-(void)viewDidLoad
{
[超级视图下载];
[自行驾驶车辆];
vosvehiculeScrollView.paginabled=是;
vosvehiculeScrollView.contentSize=CGSizeMake(vosvehiculeScrollView.frame.size.width*PageControlVehiclePossedee.numberOfPages,vosvehiculeScrollView.frame.size.height);
vosvehiculeScrollView.showshorizontalscrollingindicator=NO;
vosvehiculeScrollView.showsVerticalScrollIndicator=否;
vosvehiculeScrollView.scrollsToTop=否;
PageControlVehicleSPossedee.numberOfPages=[VehicleSPossedeCount];
PageControlVehiclePossedee.currentPage=0;
[PageControlVehiclePossedee添加目标:自操作:@selector(pageAction:)for ControlEvents:UIControlEventValueChanged];
对于(int i=0;i=[VehiclesPassede count])返回;
CGRect frame=vosvehiculeScrollView.frame;
frame.origin.x=frame.size.width*页;
frame.origin.y=0;
viewVehicleus.frame=帧;
[虚拟车辆滚动视图添加子视图:查看车辆];
NSLog(@“%d”,第页);
}
-(无效)scrollViewDidScroll:(UIScrollView*)发送方{
如果(已使用页面控制){
返回;
}
CGFloat pageWidth=vosvehiculeScrollView.frame.size.width;
int page=floor((vosvehiculeScrollView.contentOffset.x-pageWidth/2)/pageWidth)+1;
PageControlVehiclePossedee.currentPage=第页;
[带页面的自加载滚动视图:第1页];
[带页面的自加载滚动视图:第页];
[self-loadScrollViewWithPage:page+1];
}
-(无效)scrollView将开始刷新:(UIScrollView*)scrollView{
pageControlUsed=否;
}
-(无效)ScrollViewDiEndDecelling:(UIScrollView*)scrollView{
pageControlUsed=否;
}
-(void)pageAction:(UIPageControl*)控件
{
NSLog(@“页面已更改”);
int page=pageControlVehiclePossedee.currentPage;
NSLog(@“第%d页”,第页);
CGRect帧;
frame.origin.x=self.vosvehiculeScrollView.frame.size.width*self.pageControlVehiclePossedee.currentPage;
frame.origin.y=0;
frame.size=self.vosvehiculeScrollView.frame.size;
[self.vosvehiculeScrollView scrollRectToVisible:帧动画:是];
pageControlUsed=是;
}
什么是viewVehicles
?是否尝试在Xcode调试器下运行调试生成?viewVehicles是xib文件上的一个视图,其维度与scrollView相同。在这个视图上,我必须放置两个标签和一个tableview。我想对每个页面使用此视图。页面的数量是可变的,所以我现在不知道我有多少视图。是否可以使用一个视图更改页面或滚动视图?