没有与时俱进,发现从ios5以来,居然不知道怎么处理旋转控制了

首先,appdelegate里面可以控制全局的,比如控制ipad随便转,iphone不转:

- (NSUInteger) application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        // iPad
        return UIInterfaceOrientationMaskAll;
    } else {
        // iPhone / iPod Touch
        return UIInterfaceOrientationMaskPortrait;
    }
    
}


其次,如果需要每个去控制,可以是这样:

How to support one or more landscape controllers in app that is portrait mainly in ios6:

1) in AppDelegate

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
    {
        UINavigationController* ns = (UINavigationController*)self.window.rootViewController;
        if (ns) {
            UIViewController* vc = [ns visibleViewController];
//by this UIViewController that needs landscape is identified
            if ([vc respondsToSelector:@selector(needIos6Landscape)])
                return [vc supportedInterfaceOrientations];

        }
        return UIInterfaceOrientationMaskPortrait; //return default value
    }


2) in UIView controller(s) that needs landscape (or portrait+lanscape etc):

//flag method
-(void)needIos6Landscape {
}
- (BOOL)shouldAutorotate
{
    return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAllButUpsideDown;
}


3) in controllers, to which you can RETURN from controllers, that can be rotated in landscape - this is important, otherwise they remaind landscape on return from landscape-enabled VC.

- (BOOL)shouldAutorotate
{
    return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}


4) (maybe not needed, but for sure..) - subclass navigation controller(s) you using, and add:

- (BOOL)shouldAutorotate
{
    return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
    UIViewController* vc = [self visibleViewController];
    if (vc) {
        if ([vc respondsToSelector:@selector(needIos6Landscape)]) {
             return [vc supportedInterfaceOrientations];
        }
    }
    return UIInterfaceOrientationMaskPortrait;
}


The important step is to ask for orientation only controllers from your app, because during transition between controllers, for some time there is some system controller as root, and will return incorrect value (this took me 2 hrs to find out, it was reason it was not working).

引自:http://stackoverflow.com/q...
service postfix start
Starting postfix:                                          [FAILED]


今天启动一个新服务器的postfix,一直都提示失败
重新安装也没用,也没有错误输出

检查postfix命令:
which postfix
/usr/sbin/postfix

执行看看:
# /usr/sbin/postfix
postfix: fatal: parameter inet_interfaces: no local interface found for ::1

编辑配置文件
# vi /etc/postfix/main.cf
把 inet_interfaces 设置为 all

再次启动:
# service postfix start
Starting postfix:                                          [  OK  ]
问题描述:

赋予imageView一个图片,在单元格里显得太满,图片随行高调整高度。
如何调整适当留下边距?

有两个方式都可以考虑:

1 继承UITableViewCell,重写如下方法:
-(void)layoutSubviews
{
[super layoutSubviews];
[self.imageView setFrame:CGRectMake(10, 10,29, 29)];
self.imageView.contentMode = UIViewContentModeScaleAspectFit; //Fill也可以
}


2 改变图片时,代码调整:

CGSize itemSize = CGSizeMake(40, 40);

UIGraphicsBeginImageContext(itemSize);
CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
[cell.imageView.image drawInRect:imageRect];

cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();


但都有一个问题,如果图片不是方的,点击后,就会变成原来的比例
可以禁止选择的状态,如:
cell.selectionStyle = UITableViewCellSelectionStyleNone;

参考:http://www.oschina.net/question/852721_75288
如果用actionSheet问用户选项,然后选择做啥

    UIActionSheet *actionSheet= [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照", @"从相片库选取", nil];
    [actionSheet showInView:self.view];


- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
    selectedIndex = buttonIndex;
        if (selectedIndex == 0) {
            [self addCarema];
        }else if (selectedIndex == 1){
            [self openPicLibrary];
        }
}


openPicLibrary唤不起窗体,会有错误

        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        picker.delegate = self;
        picker.allowsEditing = YES;
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        [self presentViewController:picker animated:YES completion:^{
        }];


比如类似错误

Warning: Attempt to present   on xxxx which is already presenting (null)

参考解决方式:

引用
I think this is because in iOS 8, alert views and action sheets are actually presented view controllers (UIAlertController). So, if you're presenting a new view controller in response to an action from the UIAlertView, it's being presented while the UIAlertController is being dismissed. I worked around this by delaying the presentation of the UIImagePickerController until the next iteration of the runloop, by doing this:


[[NSOperationQueue mainQueue] addOperationWithBlock:^{
    [self openPhotoPicker:sourceType];
}];


本例的解决办法是:

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
    selectedIndex = buttonIndex;
    [[NSOperationQueue mainQueue] addOperationWithBlock:^{
        if (selectedIndex == 0) {
            [self addCarema];
        }else if (selectedIndex == 1){
            [self openPicLibrary];
        }
    }];
}


或者是记下点击的index,在动画结束的时候处理:

- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    if (selectedIndex == 0) {
        [self addCarema];
    }else if (selectedIndex == 1){
        [self openPicLibrary];
    }
}


参考页面: http://stackoverflow.com/questions/24942282/uiimagepickercontroller-not-presenting-in-ios-8


周四去听了一节汽车系的公开课,讲述汽车的常识,回忆做笔记。

汽车组成主要分为,底盘、发动机、车身、车载电器等。

发动机分为汽油发动机和柴油发动机。

汽油发动机是用汽油混合空气进入活塞冲程,点火爆炸产生推动力。
柴油发动机是吸入空气,压缩空气,空气温度变得很高,然后喷入柴油,自燃产生推动力。
柴油用的是高压,柴油发电机的一个参数是压缩比,数值约高,压力越大,威力越大。
柴油用的部件都是耐高压的,据说喷头部分国内还做不出。

汽油发动机的压缩比一般比较低,但讲究的是缸的容量,容量越大,可以燃烧的汽油越多,马力越大。
汽油压缩升温容易燃烧,所以一般是含辛烷可以抗自燃。
引用
高压缩比的发动机如果选用低标号汽油,会导致爆震现象的发生,使汽缸温度急剧升高,汽油燃烧不完全,并伴随有发动机剧烈振动,从而使输出功率下降,严重的爆震有可能导致发动机受损。
93和97的区别仅仅是辛烷值,没有质量好坏的差别,而汽车要加93还是97要看汽车发动机的压缩比,只有适合的,没有说更好的。

涡轮增压是把更多的空气放入缸内,以便达到容量不变的情况下,马力更大。
涡轮增压利用排除的废气的温度和速度,推动涡轮旋转,带动进气口的涡轮,压缩空气。

发动机燃油效率或动力控制:
汽油发动机是靠调整最恰当的空气和汽油比例
柴油发动机是靠喷油的时间长度控制

发动机里有润滑油,一般是回流到底部,然后抽起来过滤,再加注到发动机里。
一段时间后,需要更换过滤器和机油。
离合器也有润滑油。

关于油品:
引用
97号汽油和93号汽油,这里的数字指的是辛烷值,辛烷值表示抗爆性,即抗自燃能力。辛烷值小,抗爆性降低,对于发动机而言,发生爆震的可能性更大,严重时会导致敲缸,引起燃油经济性和排放质量、工作稳定性、功率均有所下降。
辛烷值97并不是说汽油里有97%的成分是辛烷,而是因为汽油排号是通过对比试验方法来测定的。比如你弄来一份样本汽油,你需要在控制其他条件不变的情况下,让发动机在某一工况运转,逐步增加压缩比,直至产生某一标准爆燃强度;在这个压缩比之下,调整异辛烷(抗爆能力很强,规定其辛烷值为100)和正庚烷(抗爆能力很弱,规定为0)的混合比例,直到产生刚才那个标准强度的爆燃时,异辛烷和正庚烷混合气体中异辛烷的百分比就是样本汽油的排号。

刚刚提到压缩比越大,发动机爆震倾向越大,因为混合气在气缸里燃烧速度更快了。因此,对于采用涡轮增压或机械增压的发动机,一般建议采用抗爆性更好的97号汽油。但是93号毕竟便宜,具体情况,还是建议按照汽车使用说明来操作。

但是很奇怪的是,经常有人说97号汽油比93号汽油更耐用。理论上说,93号汽油和97号汽油的抗爆性虽然有差异,但是其燃烧热值的差别并不大。于是有次上课我就问了专业课老师这个问题,结果他说,理论上热值确实没什么区别,但是在中国,由于汽油油品的问题,97号汽油的提炼要比93号汽油多出几道步骤,所以硫之类的杂质相对较少,93号则更多,因此实际使用中,会有不经烧的感觉。

http://www.zhihu.com/quest...

差速器:
保证两个轮子不需要转速一致,但加和是一样的。
点击在新窗口中浏览此图片
http://car.autohome.com.cn...

分页: 5/361 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐