2013-08-01 50 views
0

我的应用程序需要使用自动滚动来滚动不同文章的标题。当我点击文章的任何部分时,该特定文章的细节应该显示。如何在iOS 5,6中创建可点击的自动滚动?

我已经尝试了很多东西,还有很多方法。没有人似乎完美地工作。与最有希望的方法是,我用自动滚屏从AutoScrollLabel

,也为可点击文本上的UI标签RichUILabels

,我这个面临的一个小问题,目前是被显示为文本可点击的只是一个字而不是整个句子。如果有帮助,我可以在这些文章标题之间添加特定的分隔符。但即使如此,我仍然不确定如何将完整的句子作为突出显示的文本。

有没有更简单的方法来做到这一点?

  1. 随时给我一个全新的方法。
  2. 或者,如果这可以通过简单地使用多个AutoScrollLabels

来完成请让我知道如果你需要这方面的任何详细信息。

+0

您可以通过集成以下解决方案尝试 http://stackoverflow.com/a/12856174/1228669 http://stackoverflow.com/a/3694455/1228669 基本想法是创建一个具有无限滚动视图按钮并使用计时器滚动它 – prasad

+0

谢谢..这看起来很有趣。不过这是一种解决方法。 – utsavanand

回答

0

您可以动态生成UIScrollView中的UIButton并为其指定一个目标以重定向到下一个屏幕。看看下面的代码:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    //[myMapView addAnnotation:(id<MKAnnotation>)]; 

    int y=10; 

    for(int i=0;i<10;i++) 
    { 

     CGRect frame = CGRectMake(10, y, 280, 40); 
     UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
     button.frame = frame; 
     button.tag=i; 
     [button setTitle:(NSString *)@"new button" forState:(UIControlState)UIControlStateNormal]; 
     [button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside]; 
     [myScroll addSubview:button]; 

     y+=45; 
    } 
} 

- (空)buttonTapped:(ID)发送

{ 
    // code for redirecting to another view 
    // use button tag property for identifying perticular record 

} 

可以文章标题分配到按钮上的文字。将文章数据存储在数组中,并按照以下方式进行分配。

[button setTitle:(NSString *)[tempArray objectAtIndex:i] forState:(UIControlState)UIControlStateNormal]; 

希望这会帮助你。

+0

好的。嗯..但我认为这不会让我自动滚动? – utsavanand

+0

自动滚动的意义?没有得到完全... – hpp

+0

自动滚动如标签上的文字应自动滚动,就像一个选框。 – utsavanand

0

您好,请试试这个代码:

float alph = 0.7; 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    glowLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 100)]; 
    NSString *string = @"some text"; 
    glowLabel.text = string; 
    glowLabel.textColor = [UIColor blueColor]; 
    [self.view addSubview:glowLabel]; 
    glowLabel.alpha = alph; 
    [NSTimer scheduledTimerWithTimeInterval:0.4 
            target:self 
            selector:@selector(glowMarquee) 
            userInfo:nil 
            repeats:YES]; 
} 

-(void)glowMarquee { 
    alph = (alph == 1) ? 0.7 : 1; // Switch value of alph 
    [UIView beginAnimations:@"alpha" context:NULL]; 
    [UIView setAnimationDuration:0.4];   
    glowLabel.alpha = alph; 
    [UIView commitAnimations]; 
} 

使用此代码,同时创造的文章列表生成标签。希望这会帮助你。