·您现在的位置: 江北区云翼计算机软件开发服务部 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> IOS客户端Coding项目记录(三)

IOS客户端Coding项目记录(三)

作者:佚名      IOS开发编辑:admin      更新时间:2022-07-23

18:图片视图几种填充样式

_imgView.contentMode = UIViewContentModeScaleaspectFill;

如下:
typedef NS_ENUM(NSInteger, UIViewContentMode) {
    UIViewContentModeScaleToFill,
    UIViewContentModeScaleAspectFit,    
    UIViewContentModeScaleAspectFill,   
    UIViewContentModeRedraw,              // redraw on bounds change (calls -setNeedsDisplay)
    UIViewContentModeCenter,              // contents remain same size. positioned adjusted.
    UIViewContentModeTop,
    UIViewContentModeBottom,
    UIViewContentModeLeft,
    UIViewContentModeRight,
    UIViewContentModeTopLeft,
    UIViewContentModeToPRight,
    UIViewContentModeBottomLeft,
    UIViewContentModeBottomRight,
};

简单说明:
UIViewContentModeScaleToFill:表示完全填充在 frame. 里。(默认)
UIViewContentModeScaleAspectFit:保持比例,都在 frame. 内。
UIViewContentModeScaleAspectFill:保持比例,填满但 frame. 外也有。
UIViewContentModeRedraw:
   
UIViewContentModeCenter:这个 image 的中心与 frame. 的中心重合。
UIViewContentModeTop:这个 image 的上边缘与 frame. 的上边缘重合。
UIViewContentModeBottom:这个 image 的下边缘与 frame. 的下边缘重合。
UIViewContentModeLeft:这个 image 的左边缘与 frame. 的左边缘重合。
UIViewContentModeRight:这个 image 的右边缘与 frame. 的右边缘重合。
UIViewContentModeTopLeft:类似。
UIViewContentModeTopRight:类似。
UIViewContentModeBottomLeft:类似。
UIViewContentModeBottomRight:类似。

19:UIView属性clipsTobounds的应用

view添加view,并剪边(UIView属性clipsTobounds的应用)
如题,有两个view: view1,view2
view1添加view2到其中,如果view2大于view1,或者view2的坐标不在view1的范围内,view2是盖着view1的,意思就是超出的部份也会画出来

UIView有一个属性,clipsTobounds 默认情况下是NO,
如果,我们想要view2把超出的那部份隐藏起来的话,就得改变它的父视图也就view1的clipsTobounds属性值。
view1.clipsTobounds = YES;

20:CALayer常见几个设置

边框,圆角,阴影
设置圆角边框

someView.layer.cornerRadius =4.0f;
someView.layer.masksToBounds = YES;
//设置边框及边框颜色

someView.layer.borderWidth = 0.5f;
someView.layer.borderColor =[ [UIColor grayColor] CGColor];

//添加四个边阴影
 _imgvPhoto.layer.shadowColor = [UIColor blackColor].CGColor;
 _imgvPhoto.layer.shadowOffset = CGSizeMake(0, 0);
  _imgvPhoto.layer.shadowOpacity = 0.5;
 _imgvPhoto.layer.shadowRadius = 10.0;
 _ imgvPhoto.layer.masksToBounds = NO;
  //添加两个边阴影
    _imgvPhoto.layer.shadowColor = [UIColor blackColor].CGColor;
    _imgvPhoto.layer.shadowOffset = CGSizeMake(4, 4);
    _imgvPhoto.layer.shadowOpacity = 0.5;
    _imgvPhoto.layer.shadowRadius = 2.0;
说明:
①     someView  表示UIView及其之类;
②     必须引入:#import<QuartzCore/QuartzCore.h>

21:UIActionSheet弹出显示

#define kKeyWindow [UIapplication sharedApplication].keyWindow
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照", @"从相册选择", nil];
[actionSheet showInView:kKeyWindow];

22:block回调传参的运用

有两个viewcontroller分别为a,b;其中a跳转到b,从b得到一个值,然后再跳转到a,并显示出b的值;
代码如下:
a.h
- (IBAction)otherStoryboard:(id)sender;
@property (weak, nonatomic) IBOutlet UILabel *lableInfo;

a.m

- (IBAction)otherStoryboard:(id)sender {
    UIStoryboard* mainStoryboard=[UIStoryboard storyboardWithName:@"HotelStoryboard" bundle:nil];
    HotelViewController* weathcontroller=[mainStoryboard instantiateViewControllerWithIdentifier:@"hotelStoryboard"];
    weathcontroller.block=^(NSString* InputValue)
    {
        self.lableInfo.text=InputValue;
    };
    [self presentViewController:weathcontroller animated:YES completion:^{
        
    }];
}

b.h
typedef void(^ChangInputText)(NSString* InputValue);
@property(copy,nonatomic)ChangInputText block;
- (IBAction)backButton:(id)sender;
@property (weak, nonatomic) IBOutlet UITextField *inputText;

b.m
- (IBAction)backButton:(id)sender {
    NSString* backsValue=self.inputText.text;
    _block(backsValue);
    [self dismissViewControllerAnimated:YES completion:^{
        
    }];
}

当然也可以使用一个公开的方法,然后把block伟参数直接调用,可以访问下面的网址:
http://blog.csdn.net/itpeng523/article/details/24315541

23:单例模式运用

.h

@interface Coding_NetAPIManager : NSObject
(instancetype)sharedManager;

- (void)request_Tweet_DoTweet_WithObj:(Tweet *)tweet andBlock:(void (^)(id data, NSError *error))block;
@end

.m

@implementation Coding_NetAPIManager
+ (instancetype)sharedManager {
    static Coding_NetAPIManager *shared_manager = nil;
    static dispatch_once_t pred;
    dispatch_once(&pred, ^{
        shared_manager = [[self alloc] init];
    });
    return shared_manager;
}

(void)request_Tweet_DoTweet_WithObj:(Tweet *)tweet andBlock:(void (^)(id data, NSError *error))block{    ….   }
@end


然后调用时:
        [[Coding_NetAPIManager sharedManager] request_Tweet_DoTweet_WithObj:nextTweet andBlock:^(id data, NSError *error) {

        }];

24:常见的常量

#define kKeyWindow [UIApplication sharedApplication].keyWindow
#define kScreen_Bounds [UIScreen mainScreen].bounds
#define kScreen_Height [UIScreen mainScreen].bounds.size.height
#define kScreen_Width [UIScreen mainScreen].bounds.size.width

常用的方法:

- (void)setY:(CGFloat)y{
    CGRect frame = self.frame;
    frame.origin.y = y;
    self.frame = frame;
}
- (void)setX:(CGFloat)x{
    CGRect frame = self.frame;
    frame.origin.x = x;
    self.frame = frame;
}
- (void)setHeight:(CGFloat)height{
    CGRect frame = self.frame;
    frame.size.height = height;
    self.frame = frame;
}
- (void)setWidth:(CGFloat)width{
    CGRect frame = self.frame;
    frame.size.width = width;
    self.frame = frame;
}
- (void)setSize:(CGSize)size{
    CGRect frame = self.frame;
    frame.size.width = size.width;
    frame.size.height = size.height;
    self.frame = frame;
}
+ (CGRect)frameWithOutNavTab{
    CGRect frame = kScreen_Bounds;
    frame.size.height -= (20+44+49);//减去状态栏、导航栏、Tab栏的高度
    return frame;
}
+ (CGRect)frameWithOutNav{
    CGRect frame = kScreen_Bounds;
    frame.size.height -= (20+44);//减去状态栏、导航栏的高度
    return frame;
}

 25:判断类中是否有方法:

26:图片填充背景