【问题标题】:Why does a UIButton have 3 different image properties?为什么一个 UIButton 有 3 种不同的图像属性?
【发布时间】:2012-01-10 19:50:04
【问题描述】:

一个 UIButton 有 3 个不同的图像属性:

当前背景图像 当前图像 图像视图

它们各自代表什么?

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIButton_Class/UIButton/UIButton.html

【问题讨论】:

    标签: iphone ios ipad cocoa-touch uibutton


    【解决方案1】:

    我会说UIButton 有两组图像:

    1. 分配者:setImage:forState:

    2. 那些通过setBackgroundImage:forState:分配的人

    它们允许您将允许状态的前景和背景图像设置为按钮:UIControlStateNormalUIControlStateHighlightedUIControlStateDisabledUIControlStateSelected 等(它们在您链接到的文档中进行了描述,在“控制状态”部分。)

    现在,currentBackgroundImagecurrentImage 允许直接访问当前图像(即与按钮当前状态对应的图像)。

    另一方面,imageView 允许访问按钮图像下的UIImageView 对象,以便您可以在需要时设置其属性。例如。 (来自您链接的文档):

    虽然这个属性是只读的,但它自己的属性是读/写的。使用这些属性来配置按钮视图的外观和行为。例如:

        UIButton *button                   = [UIButton buttonWithType: UIButtonTypeRoundedRect];
        button.imageView.exclusiveTouch    = YES;
    

    【讨论】:

    • 那么为什么 button.imageView 不只是一个 UIView 对象,如果那是需要设置的属性呢?我不明白为什么它是 imageView 而不是 UIView。
    • 一个按钮可能由三样东西组成:背景图像、文本、标签图像。标签图像(正如我刚才所说的那样)是图像,因为这是最常见的使用模式。如果你真的需要一个带有任意视图作为标签的按钮,你必须自己创建。
    • UIImageView 是 UIView 的子类;当然,imageView 让您可以访问底层的UIImageView。我在回答中写了UIView,只是因为我认为需要修改UIView 属性更常见(除非您尝试使用动画按钮,例如)。我将编辑我的答案以更准确...
    猜你喜欢
    • 2023-04-10
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    相关资源
    最近更新 更多