如何在 iOS 中创建一个非常自定义的 uibutton,如 UITableViewCellStyleSubtitle

Posted

技术标签:

【中文标题】如何在 iOS 中创建一个非常自定义的 uibutton,如 UITableViewCellStyleSubtitle【英文标题】:How to create a very custom uibutton like UITableViewCellStyleSubtitle in iOS 【发布时间】:2011-05-23 00:41:45 【问题描述】:

我想创建一个带有类似于 UITableViewCellStyleSubtitle 的图像、标题和描述的按钮。我想以编程方式执行此操作。

有谁知道我如何做到这一点?

【问题讨论】:

【参考方案1】:

您可以创建 UIButton 类的类别。这是为您准备的准系统设置:

在.h文件中:

@interface UIButton (YourCategoryName)
    - (void)setupButton:(NSString *)title image:(UIImage *)image description:(NSString *) description;
@end

.m 文件中:

@implementation UIButton (YourCategoryName)

- void)setupButton:(NSString *)title image:(UIImage *)image description:(NSString *) description 
    UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 0, 200, 50)]];
    [self addSubview:titleLabel];
    [titleLabel release];

    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:image];
    [self addSubview:imageView]; 
    [imageView release];

    UILabel *descriptionLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 60, 200, 100)];
    [self addSubview:descriptionLabel];
    [descriptionLabel release];

在上面的代码中,您可以根据需要调整框架。设置完成后,只需像往常一样在视图/视图控制器中创建按钮并调用上面的方法:

  UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
  myButton.frame = CGRectMake(0, 0, 300, 200);
  [myButton setupButton:myTitle image:myImage description:myDesc];

【讨论】:

【参考方案2】:

继承 UIControl 并覆盖 drawRect 和/或添加子视图以创建所需的外观。

【讨论】:

以上是关于如何在 iOS 中创建一个非常自定义的 uibutton,如 UITableViewCellStyleSubtitle的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 如何在没有第三方框架的情况下在 Swift 中创建自定义动画横幅

如何在 Mapbox iOS SDK 3.0 版中创建自定义图像标记?

如何在 ios 8 和 ios 7 中创建自定义弹出视图?

如何在 C# 中创建自定义属性

如何在 WordPress 中创建自定义表单?

iOS 开发 - 如何使用自定义 Table View Controller 显示在 Interface Builder 中创建的静态单元格?