更改背景颜色相对于放入 TableViewCell 中的 UISlider 值的渐变

发布于 2024-12-08 02:43:32 字数 104 浏览 0 评论 0原文

我是目标 C 的新手。我想更改放置在单元格中的标签的背景颜色的渐变 相对于放置在同一单元格中的 UIslider。 当滑块从左向右移动时,背景颜色的渐变应该发生变化。 谁能指导我该怎么做???

i am new to objective C. I want to Change the gradient of background color of a Lable placed in the Cell
with respect to the UIslider placed in same cell.
As the slider moves from Left to Right the gradient of the Background color should change.
Can anyone guide me how to do it???

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

飘落散花 2024-12-15 02:43:32

此代码将根据滑块值的变化更改 UILabel 背景颜色的 alpha。

首先,您需要在自定义单元格中声明滑块。如下所述。

在 SignUpCustomCell.h 单元格中声明滑块。

#import <UIKit/UIKit.h>
@interface SignUpCustomCell : UITableViewCell {
    UISlider* slider;
    UILabel *lblLeft;
}
@property(nonatomic,retain) UISlider* slider;
@property(nonatomic,retain)     UILabel *lblLeft;
@end

在 SignUpCustomCell.m 文件中分配内存。

#import "SignUpCustomCell.h"
@synthesize slider,lblLeft;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) {

 slider=[[UISlider alloc]initWithFrame:CGRectMake(150, 5, 100, 25)];
    [slider setValue:0.0];
    slider.minimumValue=0;
    slider.maximumValue=1;
    [self.contentView addSubview:self.slider];

     self.lblLeft = [[UILabel alloc]init];
    self.lblLeft.font = [UIFont fontWithName:@"Helvetica-Bold" size:12];
    self.lblLeft.textColor = [UIColor colorWithRed:135.0/255.0 green:135.0/255.0 blue:135.0/255.0 alpha:1.0];
    self.lblLeft.backgroundColor = [UIColor greenColor];
    [self.lblLeft setTextAlignment:UITextAlignmentLeft];
    [self.contentView addSubview:self.lblLeft];
    [self.lblLeft release];



}
return self;
}

创建自定义单元格后。您将在您想要的地方使用它。

在 SignupViewController.m 中使用自定义单元格。我们需要以下步骤。

#import "SignUpCustomCell.h"

然后在cellForRowAtIndexPath中编写代码。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{

static NSString *CellIdentifier = @"Cell";

SignUpCustomCell *cell = (SignUpCustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) 
{
    cell = [[[SignUpCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

}
cell.lblLeft.text=@"test app";
cell.slider.tag=indexPath.row;
[cell.slider addTarget:self action:@selector(sliedervalue:) forControlEvents:UIControlEventValueChanged];
return cell;
}

-(void)sliedervalue:(id)sender
{
UISlider* sl=(UISlider*)sender;

NSLog(@"sl=%d",sl.tag);
NSLog(@"sl_value=%f",sl.value);

NSIndexPath *indexPath=[NSIndexPath indexPathForRow:sl.tag inSection:0] ;
SignUpCustomCell *cell = (SignUpCustomCell*)[tblSignup cellForRowAtIndexPath:indexPath];

cell.lblLeft.alpha= sl.value;

}

如果您有任何疑问,请告诉我。

This code will change alpha of background color of UILabel as per slider value change.

first you need to declare slider in custom Cell. as describe bellowed.

Declare slider in SignUpCustomCell.h cell.

#import <UIKit/UIKit.h>
@interface SignUpCustomCell : UITableViewCell {
    UISlider* slider;
    UILabel *lblLeft;
}
@property(nonatomic,retain) UISlider* slider;
@property(nonatomic,retain)     UILabel *lblLeft;
@end

alloc memory in SignUpCustomCell.m file.

#import "SignUpCustomCell.h"
@synthesize slider,lblLeft;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) {

 slider=[[UISlider alloc]initWithFrame:CGRectMake(150, 5, 100, 25)];
    [slider setValue:0.0];
    slider.minimumValue=0;
    slider.maximumValue=1;
    [self.contentView addSubview:self.slider];

     self.lblLeft = [[UILabel alloc]init];
    self.lblLeft.font = [UIFont fontWithName:@"Helvetica-Bold" size:12];
    self.lblLeft.textColor = [UIColor colorWithRed:135.0/255.0 green:135.0/255.0 blue:135.0/255.0 alpha:1.0];
    self.lblLeft.backgroundColor = [UIColor greenColor];
    [self.lblLeft setTextAlignment:UITextAlignmentLeft];
    [self.contentView addSubview:self.lblLeft];
    [self.lblLeft release];



}
return self;
}

After creating custom cell.You will used it where you want.

To used custome cell in SignupViewController.m . we need following steps.

#import "SignUpCustomCell.h"

Then write code in cellForRowAtIndexPath.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{

static NSString *CellIdentifier = @"Cell";

SignUpCustomCell *cell = (SignUpCustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) 
{
    cell = [[[SignUpCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

}
cell.lblLeft.text=@"test app";
cell.slider.tag=indexPath.row;
[cell.slider addTarget:self action:@selector(sliedervalue:) forControlEvents:UIControlEventValueChanged];
return cell;
}

-(void)sliedervalue:(id)sender
{
UISlider* sl=(UISlider*)sender;

NSLog(@"sl=%d",sl.tag);
NSLog(@"sl_value=%f",sl.value);

NSIndexPath *indexPath=[NSIndexPath indexPathForRow:sl.tag inSection:0] ;
SignUpCustomCell *cell = (SignUpCustomCell*)[tblSignup cellForRowAtIndexPath:indexPath];

cell.lblLeft.alpha= sl.value;

}

Let me know if you have any query.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文