【问题标题】:What exactly IS the highlighted image in a UIImageView?UIImageView 中突出显示的图像到底是什么?
【发布时间】:2013-03-21 12:13:22
【问题描述】:

这个问题让我大吃一惊,我找不到答案。我查看了所有文档,尝试了代码,并搜索了谷歌,但我找不到任何东西。 iOS 编程中的 UIImageView 可以为它设置一个图像,但你也可以为它设置一个突出显示的图像。这个突出显示的图像到底是什么?

【问题讨论】:

    标签: ios objective-c image uiimageview


    【解决方案1】:

    您可以为 UIImageView 设置两个不同的图像,一个为其 image 属性,另一个为其 highlightImage 属性。

    在很多情况下,您希望将图像的状态(例如:复选标记)从关闭更改为打开,反之亦然。在这种情况下,您不必每次都将 UIImageView 的图像设置为适当的图像,您可以说

    theCheckMarkImageView.image = regularImage;//set the regular image
    theCheckMarkImageView.highLightedImage = highlightedImage;
    

    (根据您的逻辑显示是否突出显示)。

    theCheckMarkImageView.highlighted = YES/NO;
    

    除此之外,请查看 Ethan Huang 关于 tabelviewcell 如何使用此属性的回答。如果您根据单元格选择显示不同的图像,这将非常有用。

    【讨论】:

      【解决方案2】:

      highlightedImage 用于高亮ImageView,简单。

      imageView.highlightedImage = [UIImage imageNamed:@"hightlighted.png"];
      imageView.highlighted = YES;
      

      无需浪费时间进行大量搜索或阅读。 Objective-C 是有意义的语言。只需要拖拽ImageView,做一个try code,一步步测试UIImageView.h(在UIKit框架中)中所有的属性、方法,你就明白了。 对其他 UI 元素执行相同操作。

      【讨论】:

      • "Objective-C 是有意义的语言。只要拖拽ImageView,做个try code,...."我们不是把苹果和橙子混在一起了吗!
      【解决方案3】:

      除了 Nitin Alabur 的回答,这里还有一个有用的提示:

      UITableViewCell 或 UICollectionViewCell 有一个 .selected 属性。如果你将 UIImageView 放在一个单元格中,那么当你选择单元格时,imageView 将使用 .highlightedImage 而不是 .image。

      因此您可以轻松地使单元格选择视觉状态。

      【讨论】:

        【解决方案4】:

        突出显示的图像适用于当您的控件具有可以按下的UIImageView 时。当用户按下控件时,会显示突出显示的图像。未按下控件时,显示正常图像。

        【讨论】:

        • UIImageView 不喜欢 UIButton 中的 imageView。突出显示的是通过代码或在 IB 中选择的状态控制。
        • 与 UIImageView 无关,但与上下文相关 - 要添加此内容,您可以利用 UILabel 的 highlightedTextColor 属性与单元格选择结合使用。我觉得这很干净。
        【解决方案5】:

        所有评论者都错了或回答了错误的问题或过于罗嗦。这是简单而正确的答案:

        突出显示的图像状态是用户的手指触摸图像视图时的状态。

        【讨论】:

        • 讽刺的是,你错了。 UIImageViews 不会像 UIButton 那样明确地对触摸事件做出反应。
        • 是的。从技术上讲,您是正确的。但发问者显然是在寻找一个简单的答案。简单的答案是,当用户触摸图像时,图像会突出显示。
        • 那就自己试试吧。 UIImageViews 不像 UIButtons 那样跟踪状态。它们是静态实体,除非您要求它们成为响应者链的一部分,否则它们当然不会尊重没有自定义处理程序方法的触摸事件。
        • 我的经验(尽管是学生)是,您始终应该为触摸事件实现处理程序方法以避免意外行为。也许我在这方面错了,最好的做法是不要总是有处理程序方法,但这是一个不同的问题。
        • 您似乎没有理解:您提到最简单的,突出显示意味着用户正在触摸 UIImageView。不是这样。您必须实现处理程序的事实使这个答案错误。
        猜你喜欢
        • 1970-01-01
        • 2012-12-17
        • 1970-01-01
        • 1970-01-01
        • 2018-03-21
        • 1970-01-01
        • 2011-10-29
        • 1970-01-01
        • 2014-11-29
        相关资源
        最近更新 更多