objective c-actionSheet imageView的边界

问题描述

actionSheet imageView的边界

需要在actionsheet修改imageView的边界属性:

<!-- language: lang-c -->

        #pragma UIActionSheetDelegate Methods
        - (void)willPresentActionSheet:(UIActionSheet *)actionSheet {
           /*[[[actionSheet valueForKey:@"_buttons"] objectAtIndex:0] imageView].frame = CGRectMake(0, 0, 25.0f, 25.0f);*/

           [[[actionSheet valueForKey:@"_buttons"] objectAtIndex:0] imageView].bounds = CGRectMake(0, 0, 25.0f, 25.0f);

           /*UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 25.0f, 25.0f)];
           imgView.image = [UIImage imageNamed:@"symbol-pin.png"];
           [[actionSheet superview] addSubview:imgView];*/
    }

然后在编码之后什么也出现:

[[[actionSheet valueForKey:@"_buttons"] objectAtIndex:0] imageView].bounds = CGRectMake(0, 0, 25.0f, 25.0f);

创建actionsheet的代码:

<!-- language: lang-c -->

    - (IBAction)showModeOptions:(id)sender {
       if (!modeOptions) {
         modeOptions = [[UIActionSheet alloc]initWithTitle:@"" delegate:self cancelButtonTitle:@"Abbrechen" destructiveButtonTitle:nil otherButtonTitles:@"Pin",@"Linie", @"Polygon", nil];

          [[[modeOptions valueForKey:@"_buttons"] objectAtIndex:0] setImage:[UIImage imageNamed:@"symbol-pin.png"] forState:UIControlStateNormal];

          [[[modeOptions valueForKey:@"_buttons"] objectAtIndex:1] setImage:[UIImage imageNamed:@"symbol-line.png"] forState:UIControlStateNormal];

          [[[modeOptions valueForKey:@"_buttons"] objectAtIndex:2] setImage:[UIImage imageNamed:@"symbol-polygon.png"] forState:UIControlStateNormal];

          modeOptions.actionSheetStyle = UIActionSheetStyleBlackTranslucent;
      }
      [modeOptions showFromTabBar:self.tabBarController.tabBar];
}

图片是88*88px的,我需要图片像imageView是25*25px的边框。不知道应该怎么实现?

解决方案

-(void)actionSheetClicked
{

if(!self.modeOptions)
    {
        UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Dummy",nil]; //Here I add dummy button for getting cancel button style.
        self.modeOptions = actionSheet;
        [actionSheet release];
    }
    self.modeOptions.actionSheetStyle = UIActionSheetStyleBlackOpaque;

    [self.modeOptions showFromTabBar:self.tabBarController.tabBar];//Here i show from tab bar, you can showfromview also
//    [self.modeOptions setBounds:CGRectMake(0, 0, 320, 300)];
    UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
    if (orientation == UIInterfaceOrientationPortrait ||
        orientation == UIInterfaceOrientationPortraitUpsideDown)//frame size for action sheet in both modes
    {
        [self.modeOptions setBounds:CGRectMake(0, 0, 320, 300)];

    }
    else
    {
        [self.modeOptions setBounds:CGRectMake(0, 0, 480,250)];
    }
    UIButton *buttonDum = (UIButton *)[[self.modeOptions subviews] objectAtIndex:0];

    [buttonDum setHidden:YES];//hide dummy button..

    UIButton *cancelButton = (UIButton *)[[self.modeOptions subviews] objectAtIndex:1];

    if( !self.button1)
    {

        UIButton *Btn = [[UIButton alloc]initWithFrame:CGRectMake(80, 40, 70, 70)];//**Here I use 70 X 70 px image , you can edit it**
        self.button1 = Btn;
        [self.button1 addTarget:self action:@selector(invokeFirstBtn) forControlEvents:UIControlEventTouchUpInside];
        [self.button1 setImage:[UIImage imageNamed:@"btn1Image.png"] forState:UIControlStateNormal];
        [self.modeOptions addSubview:self.button1];
        [Btn release];
    }
    if( !self.button2)
    {
        UIButton *Btn = [[UIButton alloc]initWithFrame:CGRectMake(180, 40, 70, 70)];//**Here I use 70 X 70 px image , you can edit it**
        self.button2 = sharBtn;
        [self.button2 addTarget:self action:@selector(invokeButton2) forControlEvents:UIControlEventTouchUpInside];
        [self.button2 setImage:[UIImage imageNamed:@"btn2Image.png"] forState:UIControlStateNormal];
        [self.modeOptions addSubview:self.button2];
        [Btn release];
    }
    if (orientation == UIInterfaceOrientationPortrait ||
        orientation == UIInterfaceOrientationPortraitUpsideDown)//frame size for action sheet in both modes
    {
        cancelButton.frame = CGRectMake(50, 140, 220, 40);
        self.button1.frame = CGRectMake(65, 40, 70, 70);
        self.button2.frame = CGRectMake(175, 40, 70, 70);
    }
    else
    {
        cancelButton.frame = CGRectMake(135, 140, 220, 40);
        self.button1.frame = CGRectMake(155, 40, 70, 70);
        self.button2.frame = CGRectMake(260, 40, 70, 70);
    }
}

用这段代码,可以随意修改框架尺寸,还可以创建不带虚拟按钮的actionsheet。

时间: 2024-12-17 07:20:29

objective c-actionSheet imageView的边界的相关文章

ImageView 用法总结

  结构 继承关系 public class View.OnClickListner extends View   java.lang.Object android.view.View android.widget.ImageView   直接子类 ImageButton, QuickContactBadge    间接子类 ZoomButton   类概述 显示任意图像,例如图标.ImageView类可以加载各种来源的图片(如资源或图片库),需要计算图像的尺寸,比便它可以在其他布局中使用,并提

Android 在viewPager中双指缩放图片双击缩放图片单指拖拽图片的实现思路

我们就把这个问题叫做图片查看器吧,它的主要功能有: 1.双击缩放图片. 2. 双指缩放图片. 3.单指拖拽图片. 为此这个图片查看器需要考虑以下的技术点: 一.双击缩放图片: 1.如果图片高度比屏幕的高度小得多,那么就将图片放大到高度与屏幕高度相等,否则就放大一个特定的倍数. 2.如何判断是否到达这个倍数来停止缩放. 3.判断完且停止放大后,图片可能已经超出了这个倍数需要的大小,如何回归到我们的目标大小. 4.判断完且停止缩小后,图片宽度可能已经小于屏幕宽度,在两边留下了空白,如何重置为原来的大

Android 自定义ImageView实现圆角/圆形 附加OnTouchListener详细注释以及Button圆角

转载请注明出处:王亟亟的大牛之路 平时要用一些非方方正正的按钮之类的小伙伴们是如何实现的?RadioButton?ImageButton?还是其他? 今天亟亟上的是ImageView来实现的 先上下效果图(目录结构) 分析: shape.xml用于Button的"倒角"(做过机械类的都懂,哈哈) attr.xml用于自定义ImageView的标签的定义 ids.xml用于控件findbyid用,为什么补+id 等会我会来解释 效果图: 分析:一个Button 2个自定义ImageVie

跨越边界:浅谈Java模型以外的类型策略

当谈到 Java 语言的类型方法时,Java 社区分为两大阵营.一些人喜欢编译时错误检查,更好的安全 性,以及改善的工具 -- 这些都是静态类型所能提供的特性.而另一些人则偏爱更动态的类型体验.这 一次在 跨越边界 中,您将看到两种高生产力的非 Java 语言所使用的一些截然不同的类型策略,并发现 在 Java 编程中提高类型灵活性的一些方法. 在对任何编程语言的讨论中,争议较大的一个问题就是类型模型.类型决定可以使用哪些种类的工具 ,并影响到应用程序的设计.很多开发人员将类型与生产率或可维护性

ImageView的属性android:scaleType的作用分析_Android

在网上查了好多资料,大致都雷同,大家都是互相抄袭的,看着很费劲,不好理解,自己总结一下,留着需要看的话来查找.代码中的例子如下: 复制代码 代码如下: <ImageView            android:id="@+id/iv_bit_1"            android:layout_width="@dimen/passcode_width"            android:layout_height="@dimen/passc

android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果

转自: http://blog.csdn.net/jj120522/article/details/8467810 首先呢,还是一贯作风,我们先来看看众多应用中的示例:(这种效果是很常见的,可以说应用的必须品.)                             搜狐客户端                                    百度新闻客户端                              新浪微博                              凤凰新

让Android自带的Gallery实现多点缩放,拖动和边界回弹效果,效果流畅

http://www.havenliu.com/android/668.html 公司项目要开发一个Android看漫画的软件.看了效果,需要滑动翻页,多点缩放,拖动等.但看每个效果在android上实现都不难,但要全部组合在一起实现就比较麻烦,研究了两天,动手写了几个效果对比,最终还是选择了Gallery来做.但系统自带的Gallery组件不支持对点缩放和拖动[它默认的拖动是翻页,我需要的移动定位图片],并且当快速滑动时,Gallery是多张连续翻页,而我只需要每次翻页一张.查了Android

imageview-setBitmap()方法不能填充满ImageView这个控件。

问题描述 setBitmap()方法不能填充满ImageView这个控件. 1C ImageView的属性scaleType试过没用,把src改为Background也是没用 解决方案 [iOS]CoreImage原生二维码生成[iOS]CoreImage原生二维码生成 解决方案二: 动态设置属性的话,也要设置边界大小,width和height使用match_parent 解决方案三: /** * @param 图片缩放 * @param bitmap 对象 * @param w 要缩放的宽度

Android源码系列之深入理解ImageView的ScaleType属性_Android

做Android开发的童靴们肯定对系统自带的控件使用的都非常熟悉,比如Button.TextView.ImageView等.如果你问我具体使用,我会给说:拿ImageView来说吧,首先创建一个新的项目,在项目布局文件中应用ImageView控件,代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.