UIscrollview 中的自定义 UIButton

问题描述 投票:0回答:4

我正在使用

xcode 4.6
开发应用程序。这里我想以编程方式将 UIButton 添加到 UIscrollview 中。这是我遵循的代码。

UIButton *bt =[[UIButton alloc]initWithFrame:frame];
bt=[UIButton buttonWithType:UIButtonTypeCustom];
[bt setTitle:@"Custom Button" forState:UIControlStateNormal];
[bt addTarget:self action:@selector(userTappedOnLink:) forControlEvents:UIControlEventTouchUpInside];
bt.backgroundColor = [UIColor grayColor];
bt.titleLabel.textColor=[UIColor blueColor];
[self.mainscrollview addSubview:bt];
[self.mainscrollview bringSubviewToFront:bt];

现在的问题是按钮在点击时消失(从技术上讲,它的文本颜色变成白色)。我检查了将 UIscrollview 颜色保持为红色,该按钮仍在视图中,但我无法了解其文本颜色更改的原因以及如何撤消此操作。 基本上我想使用 UIbutton 创建一个可点击的链接。 我知道 uitextview 方法(datadetectortype),但它没有用,因为我想在链接和实际链接的标签中显示不同的文本。

注意:文本颜色不会变回蓝色,仅保持白色。

提前致谢。

ios objective-c xcode uiscrollview uibutton
4个回答
2
投票

尝试以下代码

UIButton *bt =[UIButton buttonWithType:UIButtonTypeCustom];
bt.frame = CGRectMake(50.0, 50.0, 100.0, 50.0);
[bt setTitle:@"Custom Button" forState:UIControlStateNormal];
[bt addTarget:self action:@selector(userTappedOnLink:) forControlEvents:UIControlEventTouchUpInside];
bt.backgroundColor = [UIColor grayColor];
bt.titleLabel.textColor=[UIColor blueColor];
[self.scrollTest addSubview:bt];

-(void)userTappedOnLink:(UIButton*)sender
{
     NSLog(@"Test  ..");

    [self performSelector:@selector(changeBtnTextColor:) withObject:sender afterDelay:1.0];
}

-(void)changeBtnTextColor:(UIButton*)btn
{
  btn.titleLabel.textColor=[UIColor blueColor];
}

希望它对你有用。


2
投票

使用下面的代码你会得到你的解决方案

UIButton *bt =[[UIButton alloc]initWithFrame:frame];
bt=[UIButton buttonWithType:UIButtonTypeCustom];
[bt setTitle:@"Custom Button" forState:UIControlStateNormal];
[bt addTarget:self action:@selector(userTappedOnLink:) forControlEvents:UIControlEventTouchUpInside];
[bt setBackgroundColor:[UIColor grayColor]];
[bt setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[self.mainscrollview addSubview:bt];
[self.mainscrollview bringSubviewToFront:bt];

0
投票

检查 Button 的 Fram .. 是否有效? 并从代码中删除

bt=[UIButton buttonWithType:UIButtonTypeCustom];
行。


0
投票

使用以下代码:

[bt setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];

问题是您将标题设置为 titleLabel 并且正在更改按钮标题颜色的 textColor。

© www.soinside.com 2019 - 2024. All rights reserved.