2 mapmapm MapMapM 于 2013.04.19 11:23 提问

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的边框。不知道应该怎么实现?

1个回答

vikeyToy
vikeyToy   2013.04.19 13:40
已采纳
-(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。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
android-ImageView的拖动、旋转、缩放、边界回弹、双击缩放、单击销毁及源码下载
博客地址:http://blog.csdn.net/u010156024 TouchImageViewActivity 是本人一句一句代码写的,参考了网上大牛的博客。 不过其中的效果是网上没有的,也是本人一直想实现的效果。 * 本实例重写ImageView的触摸事件和手势方法。 * 实现图片的缩放、拖动,双击放大缩小、单击销毁,边界回弹,旋转并实现自动摆正。 * 详细效果请看目录下面
自定义ImageView实现图片的拖动、缩放和边界回弹
图片的缩放和拖动在上自定义View实现图片的拖动和缩放中已经提到,这里是紧承上文新添加边界回弹功能。 所谓边界回弹指的是类似微信修改头像截取图片时,如果将图片的边缘拉开了屏幕(View)边界,松手后有个回弹动作。 小小的边界回弹功能还让我折腾了好几天,起初用的是Scroller,但是使用过程中发现,如果在边界频繁向一个方向拖动,scrollX(Y)会朝着一个方向不断增大,这时候换个方向,只有不停
android 自定义ImageView实现图片缩放边界回弹和缩小回弹
此代码只适合无title的界面,所以在AndroidManifest.xml文件中作如下修改:<activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@android:style/Theme.Black.NoT
警告框和操作表(ActionSheet)
iOS 开发中,应用程序如何实现与用户的交流呢?警告框和操作表就是为此设计的。 警告框时UIAlertView创建的,用于为用户以警告或提示,最多有两个按钮,超过两个就应该考虑使用操作表。由于在iOS中,警告框是”模态“(表示的是不关闭它就不能做别的事情),因此不应该随意使用,一般情况下,警告框的使用场景有如下几个: -应用不能继续进行。例如,无法获得网络数据或者功能不能完成的时候,给用户一个
Android 可平移,缩放,旋转的ImageView
public class TouchImageView extends ImageView {          private static final String TAG = TouchImageView.class.getSimpleName();     float x_down = 0;       float y_down = 0;       PointF start =
Android中ImageView属性src和background的几点区别
Android中ImageView属性src和background的几点区别
小强的HTML5移动开发之路(38)——jqMobi插件ActionSheet
现在在手机客户端上Action Sheet非常常见,比如微信中的分享按钮菜单,下面我们使用jqMobi实现一个Action Sheet,如下: 首先右击上面的按钮选择审查元素(我用的是Chrome浏览器,先按F12) Show Custom Html Sheet 然后Ctrl + F查找 showCustomHtmlSheet()方法 代码贴出如下: fun
react-native-actionsheet
/** * Sample React Native App * https://github.com/facebook/react-native * @flow */ import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View } from 'react-na
ActionSheetForAndroid安卓版本的ActionSheet
泡在网上的日子 发表于 2014-09-05 15:57 第 3986 次阅读 ActionSheet,开源 0 编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识、前端、后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! 模仿IOS里面的UIActionSheet控件,有IOS6和IOS7
仿ios的actionSheet效果的简单实现
高仿ios的UIActionSheet的底部弹出菜单功能dialog,绝对可以用的啦