Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS隐式转换';int';至';UIColor*';不允许使用ARC_Ios_Uipickerview_Textcolor - Fatal编程技术网

iOS隐式转换';int';至';UIColor*';不允许使用ARC

iOS隐式转换';int';至';UIColor*';不允许使用ARC,ios,uipickerview,textcolor,Ios,Uipickerview,Textcolor,我有一个pickerview,它从一个单独的AFPickerView文件获取信息。我得到一个错误“ARC不允许将'int'隐式转换为'UIColor*”。有什么简单的解决方法吗 以下是其影响的代码: [visibleViews minusSet:recycledViews]; // add missing pages for (int index = firstNeededViewIndex; index <= lastNeededViewIndex; index++)

我有一个pickerview,它从一个单独的AFPickerView文件获取信息。我得到一个错误“ARC不允许将'int'隐式转换为'UIColor*”。有什么简单的解决方法吗

以下是其影响的代码:

[visibleViews minusSet:recycledViews];

    // add missing pages
    for (int index = firstNeededViewIndex; index <= lastNeededViewIndex; index++) 
    {
        if (![self isDisplayingViewForIndex:index]) 
        {
            UILabel *label = (UILabel *)[self dequeueRecycledView];

            if (label == nil)
            {
                label = [[UILabel alloc] initWithFrame:CGRectMake(_rowIndent, 0, self.frame.size.width - _rowIndent, 39.0)];
                label.backgroundColor = [UIColor clearColor];
                label.font = self.rowFont;
                label.textColor = RGBACOLOR(0.0, 0.0, 0.0, 0.75);
            }

            [self configureView:label atIndex:index];
            [contentView addSubview:label];
            [visibleViews addObject:label];
        }
    }
}
[visibleViews minusSet:recycledViews];
//添加缺少的页面
for(int index=firstneedViewIndex;index=rowsCount)
回来
currentRow=selectedRow;
[contentView setContentOffset:CGPointMake(0.0,39.0*currentRow)动画:否];
}
-(无效)setRowFont:(UIFont*)rowFont
{
_rowFont=rowFont;
用于(可视视图中的UILabel*aLabel)
{
aLabel.font=_rowFont;
}
用于(回收视图中的UILabel*aLabel)
{
aLabel.font=_rowFont;
}
}
-(void)setRowIndent:(CGFloat)rowIndent
{
_行缩进=行缩进;
用于(可视视图中的UILabel*aLabel)
{
CGRect frame=aLabel.frame;
frame.origin.x=\u行缩进;
frame.size.width=self.frame.size.width-\u行缩进;
aLabel.frame=框架;
}
用于(回收视图中的UILabel*aLabel)
{
CGRect frame=aLabel.frame;
frame.origin.x=\u行缩进;
frame.size.width=self.frame.size.width-\u行缩进;
aLabel.frame=框架;
}
}
#pragma标记-初始化
-(id)initWithFrame:(CGRect)帧
{
self=[super initWithFrame:frame];
如果(自我)
{
//设置
[自我设置];
//背景
UIImageView*bacground=[[UIImageView alloc]initWithImage:[UIImageName:@“pickerBackground.png”];
[自添加子视图:bacground];
//内容
contentView=[[UIScrollView alloc]initWithFrame:CGRectMake(0.0,0.0,frame.size.width,frame.size.height)];
contentView.showshorizontalscrolindicator=否;
contentView.showsVerticalScrollIndicator=否;
contentView.delegate=self;
[自添加子视图:contentView];
UITapGestureRecognizer*tapRecognizer=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(didTap:)];
[contentView AddGestureRecognitizer:TapRecognitizer];
//阴影
UIImageView*shadows=[[UIImageView alloc]initWithImage:[UIImageName:@“pickerShadows.png”];
[自添加子视图:阴影];
//玻璃
UIImage*glassImage=[UIImage ImageName:@“pickerGlass.png”];
glassImageView=[[UIImageView alloc]initWithFrame:CGRectMake(0.0,76.0,glassImage.size.width,glassImage.size.height)];
glassImageView.image=glassImage;
[自添加子视图:glassImageView];
}
回归自我;
}
-(无效)设置
{
_rowFont=[UIFont boldSystemFontOfSize:24.0];
_行缩进=30.0;
currentRow=0;
rowsunt=0;
visibleViews=[[NSMutableSet alloc]init];
recycledViews=[[NSMutableSet alloc]init];
}
#布拉格马克-商业
-(void)重新加载数据
{
//临时视图
currentRow=0;
rowsunt=0;
用于(UIView*可视视图中的视图)
[查看从SuperView移除];
用于(UIView*在RecycledView中查看)
[查看从SuperView移除];
visibleViews=[[NSMutableSet alloc]init];
recycledViews=[[NSMutableSet alloc]init];
rowsCount=[DatasourceNumberOfRowsInPickerView:self];
[contentView setContentOffset:CGPointMake(0.0,0.0)动画:否];
contentView.contentSize=CGSizeMake(contentView.frame.size.width,39.0*rowsCount+4*39.0);
[自我TileView];
}
-(无效)确定当前路径
{
CGFloat delta=contentView.contentOffset.y;
内部位置=圆形(δ/39.0);
当前行=位置;
[contentView设置ContentOffset:CGPointMake(0.0,39.0*位置)动画:是];
[代理选取视图:self-didSelectRow:currentRow];
}
-(无效)didTap:(id)发送方
{
UITapGestureRecognizer*tapRecognizer=(UITapGestureRecognizer*)发送方;
CGPoint point=[TapRecognitor locationInView:self];
内台阶=地板(点y/39)-2;
[自行制定步骤:步骤];
}
-(void)makeSteps:(int)steps
{
如果(步数==0 | |步数>2 | |步数<-2)
回来
[contentView setContentOffset:CGPointMake(0.0,39.0*currentRow)动画:否];
int newRow=当前行+步数;
如果(新行<0 | |新行>=rowsCount)
{
如果(步骤==-2)
[自行制定步骤:-1];
否则如果(步骤==2)
[自行制定步骤:1];
回来
}
currentRow=currentRow+步数;
[contentView setContentOffset:CGPointMake(0.0,39.0*currentRow)动画:是];
[代理选取视图:self-didSelectRow:currentRow];
}
#pragma标记-回收队列
-(UIView*)退出队列再循环视图
{
UIView*aView=[recycledViews anyObject];
如果(aView)
[recycledViews removeObject:aView];
返回视图;
}
-(BOOL)显示索引的视图:(NSUInteger)索引
{
BOOL foundPage=否;
用于(UIView*可视视图中的视图)
{
int viewIndex=aView.frame.origin.y/39.0-2;
如果(viewIndex==索引)
{
foundPage=是;
打破
}
}
返回页面;
}
-(作废)TileView
{
//计算哪些页面是可见的
CGRect visibleBounds=contentView.bounds;
int firstneedviewindex=floorf(CGRectGetMinY(visibleBounds)/39.0)-2;
int lastNeedViewIndex=floorf((CGRectGetMaxY(visibleBounds)/39.0))-2;
firstNeedViewIndex=MAX(firstNeedViewIndex,0);
LastNeedViewIndex=MIN(lastNeededViewIndex,rowsCount-1);
//回收不再可见的页面
用于(UIView*可视视图中的视图)
{
int viewIndex=aView.frame.origin.y/39-2;
如果(viewIndexLastNeedViewIndex)
{
[recycledViews添加对象:aView];
[查看从SuperView移除];
}
}
[visibleViews minusSet:recycledViews];
//添加缺少的页面
对于(int index=firstNe)
    #import "AFPickerView.h"

@implementation AFPickerView

#pragma mark - Synthesization

@synthesize dataSource;
@synthesize delegate;
@synthesize selectedRow = currentRow;
@synthesize rowFont = _rowFont;
@synthesize rowIndent = _rowIndent;




#pragma mark - Custom getters/setters

- (void)setSelectedRow:(int)selectedRow
{
    if (selectedRow >= rowsCount)
        return;

    currentRow = selectedRow;
    [contentView setContentOffset:CGPointMake(0.0, 39.0 * currentRow) animated:NO];
}




- (void)setRowFont:(UIFont *)rowFont
{
    _rowFont = rowFont;

    for (UILabel *aLabel in visibleViews) 
    {
        aLabel.font = _rowFont;
    }

    for (UILabel *aLabel in recycledViews) 
    {
        aLabel.font = _rowFont;
    }
}




- (void)setRowIndent:(CGFloat)rowIndent
{
    _rowIndent = rowIndent;

    for (UILabel *aLabel in visibleViews) 
    {
        CGRect frame = aLabel.frame;
        frame.origin.x = _rowIndent;
        frame.size.width = self.frame.size.width - _rowIndent;
        aLabel.frame = frame;
    }

    for (UILabel *aLabel in recycledViews) 
    {
        CGRect frame = aLabel.frame;
        frame.origin.x = _rowIndent;
        frame.size.width = self.frame.size.width - _rowIndent;
        aLabel.frame = frame;
    }
}




#pragma mark - Initialization

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) 
    {
        // setup
        [self setup];

        // backgound
        UIImageView *bacground = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"pickerBackground.png"]];
        [self addSubview:bacground];

        // content
        contentView = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0, 0.0, frame.size.width, frame.size.height)];
        contentView.showsHorizontalScrollIndicator = NO;
        contentView.showsVerticalScrollIndicator = NO;
        contentView.delegate = self;
        [self addSubview:contentView];

        UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTap:)];
        [contentView addGestureRecognizer:tapRecognizer];


        // shadows
        UIImageView *shadows = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"pickerShadows.png"]];
        [self addSubview:shadows];

        // glass
        UIImage *glassImage = [UIImage imageNamed:@"pickerGlass.png"];
        glassImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 76.0, glassImage.size.width, glassImage.size.height)];
        glassImageView.image = glassImage;
        [self addSubview:glassImageView];
    }
    return self;
}




- (void)setup
{
    _rowFont = [UIFont boldSystemFontOfSize:24.0];
    _rowIndent = 30.0;

    currentRow = 0;
    rowsCount = 0;
    visibleViews = [[NSMutableSet alloc] init];
    recycledViews = [[NSMutableSet alloc] init];
}




#pragma mark - Buisness

- (void)reloadData
{
    // empry views
    currentRow = 0;
    rowsCount = 0;

    for (UIView *aView in visibleViews) 
        [aView removeFromSuperview];

    for (UIView *aView in recycledViews)
        [aView removeFromSuperview];

    visibleViews = [[NSMutableSet alloc] init];
    recycledViews = [[NSMutableSet alloc] init];

    rowsCount = [dataSource numberOfRowsInPickerView:self];
    [contentView setContentOffset:CGPointMake(0.0, 0.0) animated:NO];
    contentView.contentSize = CGSizeMake(contentView.frame.size.width, 39.0 * rowsCount + 4 * 39.0);    
    [self tileViews];
}




- (void)determineCurrentRow
{
    CGFloat delta = contentView.contentOffset.y;
    int position = round(delta / 39.0);
    currentRow = position;
    [contentView setContentOffset:CGPointMake(0.0, 39.0 * position) animated:YES];
    [delegate pickerView:self didSelectRow:currentRow];
}




- (void)didTap:(id)sender
{
    UITapGestureRecognizer *tapRecognizer = (UITapGestureRecognizer *)sender;
    CGPoint point = [tapRecognizer locationInView:self];
    int steps = floor(point.y / 39) - 2;
    [self makeSteps:steps];
}




- (void)makeSteps:(int)steps
{
    if (steps == 0 || steps > 2 || steps < -2)
        return;

    [contentView setContentOffset:CGPointMake(0.0, 39.0 * currentRow) animated:NO];

    int newRow = currentRow + steps;
    if (newRow < 0 || newRow >= rowsCount)
    {
        if (steps == -2)
            [self makeSteps:-1];
        else if (steps == 2)
            [self makeSteps:1];

        return;
    }

    currentRow = currentRow + steps;
    [contentView setContentOffset:CGPointMake(0.0, 39.0 * currentRow) animated:YES];
    [delegate pickerView:self didSelectRow:currentRow];
}




#pragma mark - recycle queue

- (UIView *)dequeueRecycledView
{
    UIView *aView = [recycledViews anyObject];

    if (aView) 
        [recycledViews removeObject:aView];
    return aView;
}



- (BOOL)isDisplayingViewForIndex:(NSUInteger)index
{
    BOOL foundPage = NO;
    for (UIView *aView in visibleViews) 
    {
        int viewIndex = aView.frame.origin.y / 39.0 - 2;
        if (viewIndex == index) 
        {
            foundPage = YES;
            break;
        }
    }
    return foundPage;
}




- (void)tileViews
{
    // Calculate which pages are visible
    CGRect visibleBounds = contentView.bounds;
    int firstNeededViewIndex = floorf(CGRectGetMinY(visibleBounds) / 39.0) - 2;
    int lastNeededViewIndex  = floorf((CGRectGetMaxY(visibleBounds) / 39.0)) - 2;
    firstNeededViewIndex = MAX(firstNeededViewIndex, 0);
    lastNeededViewIndex  = MIN(lastNeededViewIndex, rowsCount - 1);

    // Recycle no-longer-visible pages 
    for (UIView *aView in visibleViews) 
    {
        int viewIndex = aView.frame.origin.y / 39 - 2;
        if (viewIndex < firstNeededViewIndex || viewIndex > lastNeededViewIndex) 
        {
            [recycledViews addObject:aView];
            [aView removeFromSuperview];
        }
    }

    [visibleViews minusSet:recycledViews];

    // add missing pages
    for (int index = firstNeededViewIndex; index <= lastNeededViewIndex; index++) 
    {
        if (![self isDisplayingViewForIndex:index]) 
        {
            UILabel *label = (UILabel *)[self dequeueRecycledView];

            if (label == nil)
            {
                label = [[UILabel alloc] initWithFrame:CGRectMake(_rowIndent, 0, self.frame.size.width - _rowIndent, 39.0)];
                label.backgroundColor = [UIColor clearColor];
                label.font = self.rowFont;
                label.textColor = RGBACOLOR(0.0, 0.0, 0.0, 0.75);
            }

            [self configureView:label atIndex:index];
            [contentView addSubview:label];
            [visibleViews addObject:label];
        }
    }
}




- (void)configureView:(UIView *)view atIndex:(NSUInteger)index
{
    UILabel *label = (UILabel *)view;
    label.text = [dataSource pickerView:self titleForRow:index];
    CGRect frame = label.frame;
    frame.origin.y = 39.0 * index + 78.0;
    label.frame = frame;
}




#pragma mark - UIScrollViewDelegate

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    [self tileViews];
}




- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    if (!decelerate)
        [self determineCurrentRow];
}




- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    [self determineCurrentRow];
}

@end
label.textColor = [UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.75f];