ios-actionSheet的subviews一直为空 为什么 在线等解答

问题描述

actionSheet的subviews一直为空 为什么 在线等解答

#import "UIImageActionSheet.h"

@implementation UIImageActionSheet

-(id) initWithImage:(UIImage *)image

          title:(NSString *)title

       delegate:(id <UIActionSheetDelegate>)delegate

cancelButtonTitle:(NSString *)cancelButtonTitle

destructiveButtonTitle:(NSString *)destructiveButtonTitle

otherButtonTitles:(NSString *)otherButtonTitles{

self = [super initWithTitle:title delegate:delegate

          cancelButtonTitle:cancelButtonTitle

     destructiveButtonTitle:destructiveButtonTitle

          otherButtonTitles:otherButtonTitles,nil];

if (self) {

    titleImage=image;

    [titleImage retain];

    UIImageView *imageView = [[UIImageView alloc] initWithImage:titleImage];

    imageView.frame = CGRectZero;

    //
    NSLog(@"subView:%@",self.subviews);
    for (UIView *subView in self.subviews){

        if (![subView isKindOfClass:[UILabel class]]) {

            [self insertSubview:imageView aboveSubview:subView];

            break;

        }

    }

    [imageView release];

}

return self;

}

  • (CGFloat) maxLabelYCoordinate {

    // Determine maximum y-coordinate of labels

    CGFloat maxY = 0;
    NSLog(@"subView11:%@",self.subviews);
    for( UIView *view in self.subviews ){

    if([view isKindOfClass:[UILabel class]]) {
    
        CGRect viewFrame = [view frame];
    
        CGFloat lowerY = viewFrame.origin.y + viewFrame.size.height;
    
        if(lowerY > maxY)
    
            maxY = lowerY;
    
    }
    

    }

    return maxY;

}

-(void) layoutSubviews{

[super layoutSubviews];

CGRect frame = [self frame];

CGFloat labelMaxY = [self maxLabelYCoordinate];

for(UIView *view in self.subviews){

    if (![view isKindOfClass:[UILabel class]]) {

        if([view isKindOfClass:[UIImageView class]]){

            CGRect viewFrame = CGRectMake((320 - titleImage.size.width)/2, labelMaxY + 10,

                                          titleImage.size.width, titleImage.size.height);

            [view setFrame:viewFrame];

        }

        else if(![view isKindOfClass:[UIImageView class]]) {

            CGRect viewFrame = [view frame];

            viewFrame.origin.y += titleImage.size.height+10;

            [view setFrame:viewFrame];

        }

    }

}

frame.origin.y -= titleImage.size.height + 2.0;

frame.size.height += titleImage.size.height + 2.0;

[self setFrame:frame];

}

/*

// Only override drawRect: if you perform custom drawing.

// An empty implementation adversely affects performance during animation.

  • (void)drawRect:(CGRect)rect {

    // Drawing code.

    }

    */

    • (void)dealloc {

    [super dealloc];

    if (titleImage) {

    [titleImage release];
    

    }

}
@end

就是这句 NSLog(@"subView:%@",self.subviews); 打印出来一直为空 subView:(
) 为什么啊

解决方案

因为它没有,你直接用代理方法就可以了,干嘛要subview呢?

时间: 2024-12-22 00:06:20

ios-actionSheet的subviews一直为空 为什么 在线等解答的相关文章

代码-ios音频后台播放,怎么实现(在线)

问题描述 ios音频后台播放,怎么实现(在线) ios音频后台播放,怎么实现,在线播放的最好有直接执行的代码 解决方案 IOS后台运行 之 后台播放音乐 iOS后台播放音乐 解决方案二: 使用服务,即Service就可以满足你的要求.给你我以前自己写的示例: import java.util.List;import android.annotation.SuppressLint;import android.app.Service;import android.content.Broadcast

ios-老程序员如何快速掌握iOS开发,请推荐相关图书和在线视频

问题描述 老程序员如何快速掌握iOS开发,请推荐相关图书和在线视频 作为一名对C++十分熟悉的老程序员,如何快速掌握iOS开发, 斯坦福的iOS在线课程很有名http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-fall 还有这套课程 http://www.xcelme.com/courses.php 教师Gary Bennett写过两本iPhone的书for Apress Books: iPhone Cool Pr

jquery ajax 接收返回值 是个URL 字符串,为空,在线等

问题描述 jquery ajax 接收返回值 是个URL 字符串,为空,在线等 jquery ajax 接收返回值 是个URL 字符串,为空,后台debug看了,肯定传了. 前台接收类型'text'.没啥问题,是否有其他原因 解决方案 上代码呀.不然怎么排查原因 解决方案二: jQuery.ajax({ type:'post', url:"/financeReport/generateURL.do", cache:false, data:{"reportType":

空铁在线是真的吗 网友不用担心购买不到心仪服务

最近小编上网浏览,看到许 多人问空铁在线是真的吗?看来这些问询者还是不太了解网络啊.空铁在线不仅是真的,而且是可以帮助网迷们分忧解难的服务型网站.不管是春运.十一黄金周还是婚假或者探亲假日,想买飞机票.火车票.汽车票.景观门票或者预定酒店都可以 借助空铁在线实现订票服务,空铁在线目前是国内服务态度最优的网站之一. 据小编了解,空钱在线是北京中和网络有限公司旗下运营的一家购票网站,这家网站系统正规合法,它 遵循国家相关法律为国内的网络http://www.aliyun.com/zixun/aggr

iOS 获取group.owner时为空

问题描述 iOS环信 获取与登录者相关的群组之后 打印group.owner为空,但是groupid那些都是有的.如果我不退出程序,立马创建一个群,然后去获取相关群的信息再打印,就可以获得刚刚创建的群的owner,如果我退出重新开启app就又没了,是不是哪里需要保存?help 解决方案 已解决,我更新了一下SDK,结果获取group的相关属性需要用groupId再次调用获取群详情的接口.昨晚问技术客服告诉我的......

iOS,戳进来方法返回为空....

问题描述 NSArray *groupArray = [[EaseMob sharedInstance].chatManager groupList];这个方法返回的居然是空!?怎么回事? 解决方案 该方法比较特殊,只有在您之前获取过群组列表的情况下才会有值,且不能保证最新.如果之前已经在该设备上登录并从服务器获取过群组列表,需要在登录成功和自动登录的回调方法中设置该方法,也可以在获取群组列表方法之前调用://获取数据库中数据[[EaseMob sharedInstance].chatManag

IOS开发笔记

1 iphone开发笔记 2 3 退回输入键盘 4 - (BOOL) textFieldShouldReturn:(id)textField{ 5 [textField resignFirstResponder]; 6 } 7 8 CGRect 9 CGRect frame = CGRectMake (origin.x, origin.y, size.width, size.height):矩形 10 NSStringFromCGRect(someCG) 把CGRect结构转变为格式化字符串:

《iOS 9 开发指南》——第1章,第1.3节工欲善其事,必先利其器——搭建开发环境

1.3 工欲善其事,必先利其器--搭建开发环境 iOS 9 开发指南 图片 2 知识点讲解:光盘:视频\知识点\第1章\搭建开发环境.mp4 学习iOS 9开发也离不开好的开发工具的帮助,如果使用的是OS X El Capitan系统,下载iOS 9开发工具将很容易,只需通过简单地单击操作即可.为此,在Dock中打开Apple Store,搜索Xcode 7并免费下载它,坐下来等待Mac下载大型安装程序(约5GB).如果你使用的不是OS X El Capitan系统,可以从iOS开发中心(htt

iphone开发笔记

  退回输入键盘   - (BOOL)textFieldShouldReturn:(id)textField{     [textField resignFirstResponder]; }   CGRect CGRect frame = CGRectMake (origin.x,origin.y, size.width, size.height):矩形 NSStringFromCGRect(someCG) 把CGRect结构转变为格式化字符串: CGRectFromString(aString