小编Mee*_*shi的帖子

低alpha的视图 - 高alpha的子视图

UIView的alpha值为.5我添加了一个alpha值为1的子视图.

子视图似乎继承了父级的alpha值.有没有办法让子视图比其父视图更不透明?

代码看起来像这样:

CGRect promptFrame = CGRectMake(55, 80, 180, 50);
UIView *inputPrompt = [[UIView alloc] initWithFrame: promptFrame];
[inputPrompt setBackgroundColor: [UIColor darkGrayColor]];
[inputPrompt setAlpha: .5];
inputPrompt.layer.cornerRadius = 8;
inputPrompt.layer.masksToBounds = YES;

CGRect fileTextFieldFrame = CGRectMake(10, 15, 150, 25);
UITextField *filePrompt = [[UITextField alloc] initWithFrame: fileTextFieldFrame];
[filePrompt setBorderStyle:UITextBorderStyleRoundedRect];
[filePrompt setClearButtonMode:UITextFieldViewModeWhileEditing];
[filePrompt setBackgroundColor: [UIColor whiteColor]];
[filePrompt setAlpha: 1];
Run Code Online (Sandbox Code Playgroud)

结果如下: 在此输入图像描述

我希望能够看到灰色下方的按钮,UIView但不能看到白色下面的按钮UITextField.我该怎么做呢?

alpha objective-c uiview ios

20
推荐指数
1
解决办法
8086
查看次数

使用Transform旋转时调整UIView的大小

当我UIView使用transform属性(CGAffineTransformMakeRotation)旋转我时,我需要拖动它的一个角,比如说右下角,以调整它的大小.在此过程中,当用户拖动角落时,视图的角落必须跟随用户的手指,并通过增加2个边(右下角拖动的右下角)来调整框的大小.

UIView当不转换框时,可以使用框架和触摸位置来调整大小并不困难.例如,我会记住UIPanGestureRecognizer handlerStateBegan上附加到此可调整大小视图的初始帧和触摸,并且在StateChanged上,我将计算触摸点X,Y与初始触摸的差异,并将这些值添加到初始帧宽度和高度.

但是,UIView当应用变换时,帧对于旋转是可靠的.因此,我只能依靠boundscenter.我创建了这个代码,但它几乎可以工作:我只能在所有4个方向上按比例放大视图,而不是一个.

- (void)handleResizeGesture:(UIPanGestureRecognizer *)recognizer {
    CGPoint touchLocation = [recognizer locationInView:self.superview];
    CGPoint center = self.center;

    switch (recognizer.state) {
        case UIGestureRecognizerStateBegan: {
            deltaAngle = atan2f(touchLocation.y - center.y, touchLocation.x - center.x) - CGAffineTransformGetAngle(self.transform);
            initialBounds = self.bounds;
            initialDistance = CGPointGetDistance(center, touchLocation);
            initialLocation = touchLocation;
            if ([self.delegate respondsToSelector:@selector(stickerViewDidBeginRotating:)]) {
                [self.delegate stickerViewDidBeginRotating:self];
            }
            break;
        }

        case UIGestureRecognizerStateChanged: {

            CGFloat scale = CGPointGetDistance(center, touchLocation)/initialDistance;
            CGFloat minimumScale = …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uigesturerecognizer ios

20
推荐指数
2
解决办法
2235
查看次数

ios8中的UIDocumentInteractionController presentOptionsMenuFromBarButtonItem错误 - 提供了未知活动项

UIDocumentInteractionController presentOptionsMenuFromBarButtonItem 在ios8硬件中给出了一个控制台错误(而不是7.1硬件或更早版本):

 Unknown activity items supplied: (
    {
    "com.adobe.pdf" = ;
},
""
 )

在我的应用程序的官方App Store版本中,应用程序崩溃了.当我在iPad上编译并运行时,它只是给出错误但不会崩溃.

我的代码:

在.h:

UIDocumentInteractionController *docInteractionController;
Run Code Online (Sandbox Code Playgroud)

在他们中:

self.docInteractionController = [UIDocumentInteractionController interactionControllerWithURL:fileURL];

self.docInteractionController.delegate = self;
//UIBarButtonItem *element is an element in my toolbar
[self.docInteractionController presentOptionsMenuFromBarButtonItem:element animated:YES];
Run Code Online (Sandbox Code Playgroud)

如果我执行NSLogdocInteractionController.UTI,我会在控制台看到"com.adobe.pdf",因此正确识别UTI.

我可以通过使用presentOpenInMenuFromBarButtonItem而不是presentOptionsMenuFromBarButtonItem为UIDocumentInteractionController调用来解决"未知活动项目",但我想向用户显示打印和电子邮件选项,而不仅仅是外部应用程序打开选项.

在iPad 8.0.2版上测试过.Xcode版本6.0.1,部署目标6.0(也使用部署目标8.0进行测试).所有目标-c.在iPad 7.1版上运行不会产生错误.

objective-c ipad ios

20
推荐指数
2
解决办法
5191
查看次数

如何在IOS中使用共享表共享文件?

我想在iPhone中使用Share Sheet功能在我的应用程序中共享我本地拥有的一些文件.我在a中显示文件,UIWebview当用户点击共享表时,我想显示选项(电子邮件,应用程序等)以共享显示在上面的文件UIWebView.我知道我们可以使用

func displayShareSheet(shareContent:String) {                                                                           
    let activityViewController = UIActivityViewController(activityItems: [shareContent as NSString], applicationActivities: nil)
    presentViewController(activityViewController, animated: true, completion: {})    
}
Run Code Online (Sandbox Code Playgroud)

例如,共享字符串.如何更改此代码以共享文档?

提前致谢.

uiwebview ios swift

20
推荐指数
3
解决办法
2万
查看次数

iOS 8上的自动布局问题(代码在iOS 7上完美运行)

我有一个使用的应用程序,auto-layout当我在iOS 7设备上运行它时,一切仍然按预期工作,但是当我在iOS 8设备上运行时,我的一些约束有点古怪.

我实际上在另一个应用程序中遇到了类似的问题,但这不是一个大问题.现在,我开始怀疑它是否是iOS 8 SDK中的一个错误,或者是否有一种新的方法来处理iOS8中我不知道的自动布局.

这是我的设置:我有UIView一个UIImageView嵌入其中.视图和图像视图都有约束将其底部,前导和后沿固定到其超级视图,常量= 0.

UIView也有其固定到它的父顶部边缘,我必须以编程方式调整它连接到约束一个IBOutlet.它UIImageView具有第四个约束,将其高度固定到设备的高度(在我的情况下为568).

以下是我在iOS 7中期望/实现的行为:我正在尝试缩小容器视图的高度,并导致图像视图的顶部在没有宽高比变化的情况下被切断(看起来像你裁剪的那种图像的顶部关闭)...这就是我固定图像视图和底部边缘的高度的原因.

在iOS8中实际发生的事情:容器视图按预期收缩(它保持固定在侧面和底部,高度收缩).该UIImageView行为就好像它曾与cosntant == 0,而不是切断图像的顶部的顶部空间限制,整个图像逐渐缩小.由于我在AspectFit模式下有图像,因此侧面也会捏合以保持纵横比相同(但是imageView本身仍保持固定在前导,后沿和下边缘).

我该怎么做:我有一个通知,从我的代码的另一部分触发,以调整连接到IBOutlet的顶部空间约束.它调用的方法非常简单:

- (void) setTopSpaceForContainerView:(NSNotification*) notif{
    containerView_TopSpace.constant = [[notif.userInfo objectForKey:kTopSpace] intValue];
    [self.view setNeedsUpdateConstraints];
    [self.view setNeedsLayout];
}
Run Code Online (Sandbox Code Playgroud)

其他人有类似的经历吗?我正在尝试找到一种解决方法,但iOS 8似乎决心缩小我的图像.

万分感谢!

objective-c ios autolayout ios8

19
推荐指数
1
解决办法
9639
查看次数

如何"当我打开ViewController时,在谷歌地图上显示我的当前位置?" 在斯威夫特?

我正在使用iOS(Swift)的谷歌地图sdk.

有谁知道如何"当我打开ViewController时,在谷歌地图上显示我的当前位置"?

实际上它就像谷歌地图应用程序.当您打开Goog​​le地图时,蓝点将显示您当前的位置.您不需要在第一次按"myLocationButton".

所以这是代码:

import UIKit
import CoreLocation
import GoogleMaps

class GoogleMapsViewer: UIViewController {

    @IBOutlet weak var mapView: GMSMapView!

    let locationManager = CLLocationManager()
    let didFindMyLocation = false

    override func viewDidLoad() {
        super.viewDidLoad()

        let camera = GMSCameraPosition.cameraWithLatitude(23.931735,longitude: 121.082711, zoom: 7)
        let mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)

        mapView.myLocationEnabled = true
        self.view = mapView

        // GOOGLE MAPS SDK: BORDER
        let mapInsets = UIEdgeInsets(top: 80.0, left: 0.0, bottom: 45.0, right: 0.0)
        mapView.padding = mapInsets

        locationManager.distanceFilter = 100
        locationManager.delegate = self
        locationManager.requestWhenInUseAuthorization()

        // GOOGLE MAPS …
Run Code Online (Sandbox Code Playgroud)

google-maps ios swift

19
推荐指数
4
解决办法
6万
查看次数

AFNetworking - 如何发出POST请求

编辑07/14

正如比尔·伯吉斯在他回答的评论mentionned,这个问题是有关version 1.3AFNetworking.这里的新人可能已经过时了.


我对iPhone开发很新,我使用AFNetworking作为我的服务库.

我正在查询的API是RESTful的,我需要发出POST请求.为此,我尝试使用以下代码:

NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:@"my_username", @"username", @"my_password", @"password", nil];
NSURL *url = [NSURL URLWithString:@"http://localhost:8080/login"];

NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
    NSLog(@"Pass Response = %@", JSON);
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
    NSLog(@"Failed Response : %@", JSON);
}];
[operation start];
Run Code Online (Sandbox Code Playgroud)

此代码有两个主要问题:

  • AFJSONRequestOperation似乎提出了一个GET请求,而不是一个请求POST.
  • 我不能把参数放到这个方法.

我也尝试过这段代码:

NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:@"my_username", @"username", @"my_password", @"password", …
Run Code Online (Sandbox Code Playgroud)

iphone json objective-c ios afnetworking

18
推荐指数
1
解决办法
3万
查看次数

在iOS中开始在TextField中键入时,PlaceHolder会动画

如何设置这种类型的动画UITextField?如今,许多应用都在使用它.

在此输入图像描述

objective-c placeholder uitextfield ios swift

18
推荐指数
3
解决办法
2万
查看次数

将UITableView的高度调整为仅满足总内容大小所需的高度

所以我有一个非常基本的问题.我UITableView在a中有这个view,我想使这个表的高度尽可能高,以显示表中的所有行.因此,我不希望能够滚动,我只想要显示所有行.(行数量是动态的height).

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CGSize cellSize = [[[_stepsArray objectAtIndex:indexPath.row]content] sizeWithFont:[UIFont boldSystemFontOfSize:18.0f] constrainedToSize:CGSizeMake(528.0f, CGFLOAT_MAX)lineBreakMode:NSLineBreakByWordWrapping];
    return cellSize.height;
}
Run Code Online (Sandbox Code Playgroud)

如果有20行,则表格会非常高,但如果只有1行,则会非常小,而其他内容将不会出现在19行以下.

objective-c uitableview ios ios5 ios6

16
推荐指数
2
解决办法
2万
查看次数

更改约束时`self.view.layoutIfNeeded()`做什么

所以我正在学习如何从屏幕外制作视图动画,以用作滑块菜单.

class ViewController: UIViewController {
    @IBOutlet weak var red: UIView!
    @IBOutlet weak var redHConstraint: NSLayoutConstraint!

    @IBAction func buttonShift(sender: AnyObject) {
        self.view.layoutIfNeeded()        // **HERE**
        UIView.animateWithDuration(0.5) {
            self.redHConstraint.constant = 0
            self.view.layoutIfNeeded()    // And **HERE**
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

我已经改编了如何使用Swift中的约束来动画UIView的代码

1. self.view.layoutIfNeeded()部分代码有什么作用?

2.为什么在动画之前和期间编码2x?

注意:如果我注释掉第1个self.view.layoutIfNeeded()没什么变化,但是如果我注释掉第2个self.view.layoutIfNeeded()动作不再是动画并且只是出现在新坐标中.

ios swift

14
推荐指数
1
解决办法
2万
查看次数